【发布时间】:2010-12-08 04:58:52
【问题描述】:
我在 /root/umar/bin 目录中有一个名为 umar.jar 的 jar 文件。我在同一目录中有一个 shell 脚本文件 run.sh。以下是run.sh的内容
#!/bin/bash
"$JAVA_HOME"/bin/java -jar /root/umar/bin/umar.jar
现在当我运行 shell 脚本时,我得到以下错误
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
经过一番谷歌搜索后,我发现(正如 stackoverflow 中的一位人士所说),当 Jar 使用比您的 JRE 更高版本的 JDK 编译时会发生此类错误。
现在奇怪的是,如果我直接在 shell 上运行这个命令
java -jar umar.jar
它工作得很好。如果 jar 是用比我的 JRE 更高版本的 JDK 编译的,那么即使从 shell 也不应该运行它。
你有什么建议?
【问题讨论】:
-
在 shell 中,输入 'whereis java' 或 'whereis javac' 并将其与 'echo "$JAVA_HOME"' 进行比较。他们应该告诉你 JRE 的路径。
标签: java linux shell scripting jar