2009-11-09 8 views
2

J'ai construit une application Java qui est livrée sur des clés USB. Pour assurer la compatibilité, j'expédie une JVM appropriée sur les bâtons. J'ai fait un EXE qui appelle simplement cette JVM avec le jar de l'application.Windows Exécutable pour exécuter l'application Java supprimée par l'antivirus

Maintenant le problème: certains scanners de virus agissent agressivement et suppriment simplement l'exécutable!

J'ai essayé un exe fait avec un outil "Batch file to Executable" et un moi-même écrit en C (invoquant ShellExecute); Norton SONAR détecte et élimine les deux versions, mais j'imagine que d'autres scanneurs de virus pourraient réagir de la même manière.

J'ai d'abord opté pour un raccourci Windows mais ceux-ci ne semblent pas supporter les chemins relatifs. Un fichier batch n'est pas non plus acceptable car je ne veux pas que la console de commande soit affichée.

Répondre

2

Vous pouvez essayer d'utiliser l'un des nombreux lanceurs java configurables - ils peuvent être moins susceptibles d'être repris par AVs:

(description complète: je travaille sur winrun4j)

+0

Il a fini par travailler avec NSIS ... J'ai essayé tous les autres mais ils ont tous été enlevés. Merci! –

+0

J'ai travaillé avec https://github.com/kohsuke/winsw Windows Service wrapper pour ajouter le programme Java en tant qu'exécutable – cabaji99

0

Utilisez start/b java.exe ... dans un fichier de traitement par lots. Il y aura un petit scintillement mais la fenêtre disparaîtra rapidement. En ce qui concerne le scanner de virus en supprimant votre fichier: Utilisez un stick qui a un commutateur matériel qui peut le rendre protégé en écriture. C'est pour votre propre sécurité: ce n'est pas parce qu'il y a un antivirus qu'il n'y a pas de virus. Si personne ne peut écrire sur le bâton, personne ne peut jouer avec.

+0

L'application enregistre des données sur le manche, de sorte qu'il ne peut pas être protégé en écriture. –

+0

En outre, je vois plus d'un scintillement si j'utilise start/b, en fait aucune différence du tout, désolé. –

0

Si vous lancez votre application en utilisant javaw.exe, vous ne devriez pas avoir de fenêtre de console associée, ce qui pourrait vous éviter de devoir convertir votre fichier bat en .exe.

Vous pouvez également envisager de distribuer votre application en tant qu'application Webstart, dans laquelle le fichier jnlp associé décrit la version minimale requise de la machine virtuelle Java.

0

Étant donné que le programme n'aura pas à changer très souvent: Soumettez-le comme un faux-positif aux fournisseurs AV, alors il sera probablement listé en blanc assez rapidement. Ou au moins vous pourriez découvrir ce qu'ils trouvent si répréhensible.