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

这是一节课。我以前从未使用过shell脚本,但说明是编写一个运行java程序的脚本(该程序已经全部设置为接受命令行参数(至少有一个参数,还有一个可选的第二个参数))。我应该可以这样运行它:

./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”,不过谢谢你的提示。