2011-10-17 131 views

回答

1

那么基本上你想要放在.sh文件中的是你通常在控制台上输入的命令来运行你的jar文件。它们应该用一个新行分隔(即每个位于.sh文件的单独一行中)。

最基本的,你可以去的是添加这样的事情您的SH文件:从当

java -Xms=64m -Xmx=256m -jar myJar.jar -classpath [dependencies dir]/dep1.jar,[dependencies dir]/dep2.jar 

超出了你可以做更奇特的东西,比如parametrise一些环境变量,get命令行argumens。 SH启动,并通过他们向罐子executatble等查一查“的bash脚本”的先进的东西:

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-2.html#ss2.1

4

一个罐子。如果它不可执行,则使用脚本(.sh)来启动jar。

+0

如何创建shell脚本文件(.sh)以及如何执行该jar? –

+0

您可以使用任何文本编辑器创建一个shell脚本。 'java'命令的手动条目解释了如何执行JAR文件。 –

+0

如何创建脚本:在jar目录中键入'echo“java -jar myJarFileName.jar”>> launcher.sh'并且它应该创建一个名为launcher.sh的文件 –

6

可执行文件的格式?

如果您要提供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 "[email protected]" 

什么进入shell脚本什么你的应用实际需要启动完全依赖。

+0

我真的想知道如何创建一个shell脚本设置其环境并执行它? –

+0

“java -jar FILENAME.jar”将运行您的JAR文件,只要它声明了Main-Class并且客户端安装了JVM。根据您的开发环境(例如NetBeans),前者可能已经为您完成。 – obfuscation

+0

@MohammadFaisal更新了一个非常简单的例子。这些'Launch4j','IzPack'或其他可用于'linux'的 –

1

如果您的应用程序。有一个GUI,用于安装/部署的最佳用户体验可以通过Java Web Start获得。请注意,JWS可以部署应用程序。到Windows,* nix Mac。并避免生成3个独立(特定于平台)的可执行文件的所有维护困难。

1

使用Launch4JIzPack或具有跨平台功能的其他installer可能会带来更好的运气。这可能是比试图了解不同Linux发行版和shell的复杂性和特质更好的首选。

+0

也是? –