UNIX:从终端运行但不从bash脚本运行的java程序命令

时间:2017-01-27 01:47:28

标签: java unix

此命令在终端$java -jar $picard

中运行良好

每当我把它放在bash脚本中时,它会给出错误:line 2: -jar: command not found

#!/bin/sh
$java -jar $picard`

有没有修复,谢谢?

2 个答案:

答案 0 :(得分:4)

行开头的$不是命令的一部分;它是shell提示符的一部分。

将命令放在批处理文件中时,不应包含shell提示符。所以改成它:

#!/bin/sh
java -jar $picard

修改

OP提到“$ java”指向实际的Java二进制文件。

如果您关注naming conventions for shell scripts,那么$java$picard是shell中的局部变量,而不是环境变量,因此它们不会传递给您调用的任何命令。< / p>

要将它们转换为环境变量,您需要从shell中导出它们。无论你在其中设置值是最好的放置位置:

export java
export picard

但是,这会将它们变成环境变量,在这种情况下,您应该将名称设为“all capitals” - &gt; JAVAPICARD

答案 1 :(得分:0)

您必须导出用于指向java路径的java变量,如下所示

  

JAVA_CLASSPATH = / bin中/ jre1.8.0_101 / bin中/ JAVA

     

导出PICARD_CLASSPATH = / bin / picard-tools-2.5.0 / picard.jar

     

$ JAVA_CLASSPATH -classpath $ PICARD_CLASSPATH {执行开始的类的NMAe}

您可以使用大写字母代替小案例,以便更具可读性。