Shell脚本:运行java应用程序并通过脚本向其发送命令行参数?
这是一节课。我以前从未使用过shell脚本,但说明是编写一个运行java程序的脚本(该程序已经全部设置为接受命令行参数(至少有一个参数,还有一个可选的第二个参数))。我应该可以这样运行它:Shell脚本:运行java应用程序并通过脚本向其发送命令行参数?,java,shell,Java,Shell,这是一节课。我以前从未使用过shell脚本,但说明是编写一个运行java程序的脚本(该程序已经全部设置为接受命令行参数(至少有一个参数,还有一个可选的第二个参数))。我应该可以这样运行它: ./script.sh arg1 arg2 但是当我这样做时,我得到了以下错误(我的java主类名是A1): 这就是我的shell脚本现在的样子: #!/bin/sh java -Xmx1024m A1.class $@ 非常感谢您的帮助。您需要告诉java在何处查找您的类(使用-cp)-在目录或.ja
./script.sh arg1 arg2
但是当我这样做时,我得到了以下错误(我的java主类名是A1):
这就是我的shell脚本现在的样子:
#!/bin/sh
java -Xmx1024m A1.class $@
非常感谢您的帮助。您需要告诉java在何处查找您的类(使用
-cp
)-在目录或.jar中
要查找脚本所在的目录(与启动脚本的位置相反),可以使用:$(dirname$0)
例如:
#!/bin/bash
JVM=java
JVM_OPTS="-Xmx1024m"
$JVM $JVM_OPTS -cp $(dirname $0)/myapp.jar A1 "$@"
明确说明您想要的外壳是个好主意。还要注意转义参数所需的
$@
周围的引号。您需要告诉java在目录或.jar中查找类的位置(使用-cp
)
要查找脚本所在的目录(与启动脚本的位置相反),可以使用:$(dirname$0)
例如:
#!/bin/bash
JVM=java
JVM_OPTS="-Xmx1024m"
$JVM $JVM_OPTS -cp $(dirname $0)/myapp.jar A1 "$@"
明确说明您想要的外壳是个好主意。还请注意转义参数所需的
$@
周围的引号。运行java时使用classpath标志告诉虚拟机A1.class文件的位置
见
应该是这样的:
java -classpath /myfolder A1 $@
另外,运行命令时不要使用“.class”后缀 运行java时使用classpath标志告诉虚拟机A1.class文件的位置 见 应该是这样的:
java -classpath /myfolder A1 $@
另外,运行命令时不要使用“.class”后缀 多谢各位。我所做的就是去掉了“.class”,它很有效。非常感谢。我所做的只是去掉了“.class”,它就工作了。谢谢你的帮助。原来我所要做的就是摆脱“.class”,但是谢谢你的提示。谢谢你的帮助。原来我所要做的就是摆脱“.class”,不过谢谢你的提示。