Исполняемый файл Windows для запуска Java-приложения, удаленного антивирусным сканером

Я создал приложение Java, которое поставляется на USB-накопителях. Для обеспечения совместимости я отправляю на флешках подходящую JVM. Я сделал EXE, который просто вызывает эту JVM с jar-файлом приложения.

Теперь проблема: некоторые антивирусные сканеры действуют агрессивно и просто удаляют исполняемый файл!

Я пробовал исполняемый файл, созданный с помощью инструмента «Пакетный файл в исполняемый файл», и один, написанный мной на C (вызывая ShellExecute); обе версии обнаруживаются и удаляются Norton SONAR, но я могу представить, что другие антивирусные сканеры могут реагировать аналогичным образом.

Сначала я выбрал ярлык Windows, но он, похоже, не поддерживает относительные пути. Пакетный файл также неприемлем, поскольку я не хочу, чтобы отображалась командная консоль.


person Wouter Lievens    schedule 09.11.2009    source источник


Ответы (4)


Вы можете попробовать использовать одну из множества настраиваемых программ запуска java - они с меньшей вероятностью будут обнаружены антивирусами:

(полное раскрытие: я работаю над winrun4j)

person Peter Smith    schedule 09.11.2009
comment
В итоге все получилось с NSIS ... Я пробовал все остальные, но все вышли из строя. Спасибо! - person Wouter Lievens; 02.12.2009
comment
Я работал с github.com/kohsuke/winsw оболочкой службы Windows, чтобы добавить программу Java в качестве исполняемого файла - person cabaji99; 10.10.2017

Используйте start/b java.exe ... в пакетном файле. Будет кратковременное мерцание, но окно быстро исчезнет.

Что касается антивирусного сканера, удаляющего ваш файл: используйте флешку с аппаратным переключателем, который может защитить его от записи. Это для вашей же безопасности: наличие антивирусного сканера не означает, что вируса нет. Если никто не может писать на флешку, никто не сможет с ней связываться.

person Aaron Digulla    schedule 09.11.2009
comment
Приложение сохраняет данные на флешке, поэтому она не может быть защищена от записи. - person Wouter Lievens; 09.11.2009
comment
Кроме того, я вижу больше, чем мерцание, если использую start / b, на самом деле никакой разницы, извините. - person Wouter Lievens; 09.11.2009

Если вы запускаете приложение с использованием javaw.exe, у вас вообще не должно быть связанного с ним окна консоли, чтобы можно было обойти необходимость конвертировать файл bat в .exe.

Вы также можете рассмотреть возможность распространения своего приложения как приложения Webstart, при этом связанный файл jnlp описывает минимально необходимую версию JVM.

person Adamski    schedule 09.11.2009

Так как программу не придется очень часто менять: отправьте ее как ложное срабатывание поставщикам AV, то она, вероятно, довольно быстро попадет в белый список. Или, по крайней мере, вы можете узнать, что они считают таким неугодным.

person Douglas Leeder    schedule 09.11.2009