2

我有这个Java类:

public class SortAlgorithms {
public static void main(String... args) {

        String out = "";
        int vec1[] = readFile(args[0]);

        out = out + write(vec1);
        out = out + "=== INSERTION SORT ===\n";
        insertionSort(vec1, vec1.length);
        out = out + write(vec1) + "\n";
...
}
...
}

我将它部署在我的 Boinc 平台上的其他机器上。有一个 bash 脚本来运行这个类:

#!/bin/sh

export JAVA_HOME="/usr/java/jdk1.6.0_34/"
export PATH=${JAVA_HOME}/bin:${PATH}

java SortAlgorithms 10 "output.txt" > saida.txt

我收到这个错误:

<stderr_txt>
Exception in thread "main" java.lang.ClassFormatError: Incompatible magic value 1014198118 in class file SortAlgorithms
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: SortAlgorithms.  Program will exit.

</stderr_txt>

有谁知道发生了什么?提前谢谢。费利佩

4

3 回答 3

3

您的类文件未正确复制。它以字符串 '<sof' 开头,这绝对不是 java 字节码的开头。

于 2013-04-09T14:02:39.393 回答
0

查看 Java API:

文件格式错误或不能被解释为类文件。

我相信您需要在将运行代码的机器上编译您的 Java 文件。

于 2013-04-09T13:39:24.163 回答
0

虽然 maxkar 和 user1773630 的答案似乎都是正确的,但听起来确实像 .class 文件没有正确传输。比较校验和,还是制作一个 .jar?

如果您安装了不同主要版本的 jdk,也可能存在类兼容性问题,这可能会导致类似的错误。

于 2013-04-09T15:24:02.770 回答