我有这个应用程序,您可以使用 java 宏以批处理模式运行。我有一个mymacro.java
使用myjar.jar
. 为简单起见,我将它们全部放在运行应用程序的同一目录中,因此类路径为"./myjar.jar"
.
运行应用程序的命令是:
theapplication -classpath "./myjar.jar" -batch mymacro.java
标签在哪里-classpath
做它所宣传的,即覆盖类路径。现在这在我的 Windows XP PC 上运行良好。NoSuchMethodError
但是,当在 Linux 集群上运行完全相同的东西时,我得到了一个。
java.lang.NoSuchMethodError:
com.foo.bar.baz.theMethod(Ljava/lang/String;Ljava/lang/String;)I
我想不通这个。相同的 .java、相同的 .jar、相同theMethod
的 . 类路径再简单不过了。myjar.jar
正在调用其他方法,没有任何错误。可能出了什么问题?
仅供参考,我在两台机器上都将CLASSPATH
环境变量设置为"."
以排除任何冲突。
编辑
java -version
在我的 Windows XP PC 上的输出:
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode)
在 Linux 集群上:
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode)