Я связал JRE с моим приложением, просто скопировав файлы из $ JAVA_HOME / jre
в свой распространение приложения. Это может противоречить духу Java, но снижает потенциальные проблемы, гарантируя, что мое приложение работает на той версии JRE, на которой оно было протестировано (включая разрядность; я использую некоторый JNI, который требует, чтобы JRE была 32-разрядной версией. ).
Работает нормально, но раздача довольно большая, так, может быть, некоторые ненужные файлы можно было пропустить? Действительно, $ JAVA_HOME / jre / README.txt
содержит следующий совет:
Файлы, составляющие среду выполнения Java SE, делятся на две категории: обязательные и необязательные. Необязательные файлы могут быть исключены из распространений среды выполнения Java SE на на усмотрение поставщика.
В следующем разделе содержится список файлов и каталогов, которые при необходимости может быть исключен из повторного распространения с Java SE Runtime Окружающая среда. Все файлы, не входящие в эти списки дополнительных файлов, должны быть включены в распространяемые среды выполнения.
... При распространении JRE в Microsoft Windows в качестве частной время выполнения приложения (недоступно для других приложений) с настраиваемой программой запуска следующие файлы также по желанию. Это библиотеки и исполняемые файлы, которые используются для поддержки Java в браузерах семейства Internet Explorer и Mozilla; these files are not needed in a private JRE redistribution.
What puzzles me is that the list of optional files includes, among others:
bin\java.exe
bin\javaw.exe
bin\javaws.exe
How can java/javaw.exe
be optional? How am I supposed to start a Java application without them? Apparently I don't know something (likely), or the instructions are simply wrong.