【问题标题】:Unable to passing arguments to jar launcher into shell script无法将参数传递给 jar 启动器到 shell 脚本
【发布时间】:2013-08-06 06:27:49
【问题描述】:

我有以下问题,这是我的 shell 脚本:

#!/bin/bash
CONFIG_FOLDER=./config
JAVA_HOME=/home/lorenzo/Downloads/jdk1.7.0_25/bin
CHARSET=utf8
$JAVA_HOME/java -DconfigFolder=$CONFIG_FOLDER -jar com.lorenzo.myapp.jar 

当我运行脚本时,出现以下错误:

/java: not foundmyscript.sh: 5: myscritp.sh: /home/lorenzo/Downloads/jdk1.7.0_25/bin

有什么想法吗?

P.S myscript.sh 是发布的脚本。

编辑:

我找到了部分解决方案:

#!/bin/bash
CONFIG_FOLDER=./config
export PATH=$PATH:/home/user/jdk1.7/bin
java -DconfigFolder=$CONFIG_FOLDER -jar com.lorenzo.myapp.jar 

但是现在,我遇到了另一个问题:当我运行脚本时,$CONFIG_FOLDER 的值是空的。为什么?

【问题讨论】:

  • 您是否尝试更改-D-jar 之间的顺序?像这样:$JAVA_HOME/java -jar -DconfigFolder=$CONFIG_FOLDER com.lorenzo.myapp.jar
  • 我已经试过了,没有,同样的错误...谢谢你的建议!
  • 不客气。另一个问题:myscript.sh 是什么?我的意思是您在上面发布的 sript 还是 ./config 文件夹中包含的另一个?
  • 谢谢! myscript.sh 是我发布的脚本。
  • 那么如果我没有误解错误是myscript.sh由于sh无法找到(或解决)/home/lorenzo/Downloads/jdk1.7.0_25/bin(您的JAVA_HOME)的第5行。确保路径正确,因为我认为这不是 java 错误,而是 sh 错误。

标签: java bash shell jar parameter-passing


【解决方案1】:

我终于找到了解决方案!我在Windows操作系统下编写了脚本。如果我在 Linux 下使用 vim 文本编辑器打开脚本,脚本会以这种方式出现:

#!/bin/bash^M
CONFIG_FOLDER=./config^M
JAVA_HOME=/home/lorenzo/Downloads/jdk1.7.0_25/bin^M
CHARSET=utf8^M
$JAVA_HOME/java -DconfigFolder=$CONFIG_FOLDER -jar com.lorenzo.myapp.jar^M

脚本很脏!删除所有 ^M 后,脚本工作!

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-30
相关资源
最近更新 更多