Java 获得;错误:找不到或加载主类“;从bash脚本调用JAR时
我在Java 获得;错误:找不到或加载主类“;从bash脚本调用JAR时,java,class,jar,Java,Class,Jar,我在machineA上构建并运行了一个JAR,如下所示: java -cp /foo/lib/dep1.jar:/foo/lib/dep2.jar:/foo/export/myjar.jar foo.bar.baz.MyMainClass ... 因此,myjar.jar是我构建的jar,另外两个是它的依赖项。没有任何问题 然后我想在machineB上执行同样的操作,因此我复制了那里的3个JAR文件,然后尝试: /non/default/install/java -cp /bar/dep1.
machineA
上构建并运行了一个JAR,如下所示:
java -cp /foo/lib/dep1.jar:/foo/lib/dep2.jar:/foo/export/myjar.jar foo.bar.baz.MyMainClass ...
因此,myjar.jar
是我构建的jar,另外两个是它的依赖项。没有任何问题
然后我想在machineB
上执行同样的操作,因此我复制了那里的3个JAR文件,然后尝试:
/non/default/install/java -cp /bar/dep1.jar:/bar/dep2.jar:/bar/myjar.jar foo.bar.baz.MyMainClass ...
并得到错误:无法找到或加载主类
。(注意:/non/default/install/java
是在machineB
上的一个单独的java安装,我必须使用它,而不是/usr/bin/java
。原因是“历史”,即我对此没有控制权)
在machineA
上,java-version
给出
java version "1.7.0_91"
OpenJDK Runtime Environment (rhel-2.6.2.2.el6_7-x86_64 u91-b00)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)
java version "1.7.0_65"
Java(TM) SE Runtime Environment (build 1.7.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
在machineB
上,/non/default/install/java-version
给出
java version "1.7.0_91"
OpenJDK Runtime Environment (rhel-2.6.2.2.el6_7-x86_64 u91-b00)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)
java version "1.7.0_65"
Java(TM) SE Runtime Environment (build 1.7.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
两台机器都运行RedHat 6
为什么会出现错误?如何修复
谢谢
重要更新:我从
machineA
上的命令行运行了下面的命令。在machineB
上,我最初使用bash
脚本运行它们。这意味着我将它们放入run.bash
中,然后从命令行运行bash-run.bash
。那就是我出错的时候。当我在不使用任何脚本的情况下从命令行重新运行相同的命令时,它起作用了。因此,问题似乎与我将JAR从一台机器复制到另一台机器无关,而是与我以脚本的形式调用它们有关。所以现在的问题是:我如何修改run.bash
和/或我执行它的方式来消除错误?(因为我最终需要使用脚本)你能在machineB上尝试第一个命令行,看看问题是否是“/non/default/install/java”吗?这个问题可能是个坏问题manifest@RC. 你是说运行java-cp/bar/dep1.jar…
而不是/non/default/install/java-cp/bar/dep1.jar…
?如果是这样,那就不是一个真正的选项,因为machineB
上的默认java是1.6