【发布时间】:2011-10-17 13:30:23
【问题描述】:
我使用 Java 开发了一个项目,现在我必须将它交付给使用 Linux 的客户。将交付哪种可执行文件格式以及如何制作?
【问题讨论】:
标签: java linux deployment
我使用 Java 开发了一个项目,现在我必须将它交付给使用 Linux 的客户。将交付哪种可执行文件格式以及如何制作?
【问题讨论】:
标签: java linux deployment
可执行文件格式?
如果您要交付 Java 应用,请给他们一个 jar 文件(和相关的库)。
提供一个 shell 脚本来设置它的环境并执行它。
例如,假设我将ROOT_DIR 定义为我的应用程序的安装目录,依此类推:
CLASSPATH="${ADD_JARS}:${CLASSPATH}:${ROOT_DIR}/lib/myApp.jar:\
${ROOT_DIR}/lib/jibx/jibx-run.jar:\
${ROOT_DIR}/lib/jibx/xpp3.jar:\
${ROOT_DIR}/lib/bindings.jar:\
${ROOT_DIR}/lib/commons-lang-2.0.jar:\
${ROOT_DIR}/lib/forms-1.0.5.jar"
"${JAVACMD}" -Xmx256M -DanyDefsNeeded=foobar -Dbase.dir="${ROOT_DIR}" -cp "${CLASSPATH}" myApp.main.Launcher "$@"
shell 脚本中的内容完全取决于您的应用实际需要启动的内容。
【讨论】:
一个罐子。如果它不可执行,则使用脚本 (.sh) 来启动 jar。
【讨论】:
java 命令的手动条目解释了如何执行 JAR 文件。
echo "java -jar myJarFileName.jar" >> launcher.sh,它应该会创建一个名为launcher.sh的文件
基本上,您想要放入 .sh 文件的内容就是您通常在控制台中键入以运行 jar 文件的命令。它们应该由一个新行分隔(即每个在 .sh 文件中的单独行上)。
你可以做的最基本的就是在你的 sh 文件中添加这样的东西:
java -Xms=64m -Xmx=256m -jar myJar.jar -classpath [dependencies dir]/dep1.jar,[dependencies dir]/dep2.jar
除此之外,您还可以做更多奇特的事情,例如参数化一些环境变量,从 .sh 启动时获取命令行参数并将它们传递给 jar 可执行文件等。查找“bash 脚本”以获取高级内容:
【讨论】:
如果您的应用程序。有一个 GUI,安装/部署的最佳用户体验可以通过Java Web Start 获得。请注意,JWS 可以部署应用程序。到 Windows、*nix 和 Mac。并避免生成 3 个单独的(特定于平台的)可执行文件所带来的所有维护问题。
【讨论】: