Я связывал JRE со своим приложением, просто копируя файлы из $JAVA_HOME/jre
в дистрибутив моего приложения.Это может противоречить духу Java, но уменьшает потенциальные проблемы, поскольку мое приложение работает на той версии JRE, на которой оно было протестировано (включая битность; я использую некоторые JNI, для которых требуется, чтобы JRE была 32-битной версией).).
Работает нормально, но весь дистрибутив несколько большой, так что, может быть, некоторые ненужные файлы могут быть пропущены?Действительно, $JAVA_HOME/jre/README.txt
содержит следующий совет:
Файлы, составляющие среду выполнения Java SE, делятся на две категории: обязательные и необязательные.Необязательные файлы могут быть исключены из перераспределений среды выполнения Java SE по усмотрению поставщика.
В следующем разделе содержится список файлов и каталогов, которые при желании могут быть исключены из перераспределений в среде выполнения Java SE.Все файлы, отсутствующие в этих списках необязательных файлов, должны быть включены в перераспределения среды выполнения.
... При перераспределении JRE в Microsoft Windows в качестве среды выполнения частного приложения (недоступной для других приложений) с пользовательскимlauncher, следующие файлы также необязательны.Это библиотеки и исполняемые файлы, которые используются для поддержки Java в браузерах семейства Internet Explorer и Mozilla;эти файлы не нужны при частном распространении JRE.
Меня удивляет то, что в список необязательных файлов входит, среди прочего:
bin\java.exe
bin\javaw.exe
bin\javaws.exe
Как можно java/javaw.exe
быть необязательным? Как мне запустить приложение Java без них?Видимо, я что-то не знаю (скорее всего), или инструкции просто неверны.