找不到主类:SortAlgorithms

我有这个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> 

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

您的班级文件没有正确复制。 它以字符串“<sof”开头,这肯定不是java字节码的开始。

看一下Java API:

文件格式不正确或者不能被解释为类文件。

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

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

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