在Linux系统上部署Java项目

在Linux系统上部署Java项目,java,linux,deployment,Java,Linux,Deployment,我使用Java开发了一个项目,现在我必须将它交付给使用Linux的客户机。将交付哪种可执行文件格式以及如何使其成为jar。如果它不是可执行文件,则使用脚本(.sh)启动jar。可执行文件格式 如果您正在交付一个Java应用程序,请给他们一个jar文件(以及相关的LIB) 提供一个shell脚本来设置它的环境并执行它 例如,假设我将ROOT\u DIR定义为我的应用程序的安装目录,依此类推: CLASSPATH="${ADD_JARS}:${CLASSPATH}:${ROOT_DIR}/lib/m

我使用Java开发了一个项目,现在我必须将它交付给使用Linux的客户机。将交付哪种可执行文件格式以及如何使其成为jar。如果它不是可执行文件,则使用脚本(.sh)启动jar。

可执行文件格式

如果您正在交付一个Java应用程序,请给他们一个jar文件(以及相关的LIB)

提供一个shell脚本来设置它的环境并执行它

例如,假设我将
ROOT\u 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文件。它们应该用新行分隔(即,在.sh文件中,每一行都位于单独的行上)

最基本的方法是在sh文件中添加如下内容:

java -Xms=64m -Xmx=256m -jar myJar.jar -classpath [dependencies dir]/dep1.jar,[dependencies dir]/dep2.jar
除此之外,您还可以做更多奇特的事情,比如参数化一些环境变量,从.sh启动时获取命令行参数,并将其传递给jar可执行文件等。有关高级内容,请查阅“bash脚本”:


如果您的应用程序。如果有GUI,则可以通过以下方式获得安装/部署的最佳用户体验。请注意,JWS可以部署应用程序。对于Windows,*nixMac。并且避免了生成3个独立(特定于平台)的可执行文件所带来的所有维护难题。

使用或其他具有跨平台功能的文件可能会更好。与试图理解不同Linux发行版和shell的复杂性和特性相比,这可能是更好的第一个选择。

我实际上想知道如何制作一个shell脚本来设置环境并执行它?“java-jar FILENAME.jar”将运行您的jar文件,前提是它声明了一个主类,并且客户端安装了JVM。根据您的开发环境(例如NetBeans),前者可能已经为您完成。@MohammadFaisal用一个非常简单的示例更新了答案。如何创建shell脚本文件(.sh)以及如何执行该jar?您可以使用任何文本编辑器创建shell脚本。
java
命令的手动条目解释了如何执行JAR文件。如何创建脚本:在JAR目录中键入
echo“java-JAR myJarFileName.JAR”>>launcher.sh
,它应该创建一个名为launcher.share的文件,这些
Launch4j
IzPack
或其他文件也可用于
linux