1

我看到这里有很多类似的线索,但它们对我没有帮助。

我尝试在 Win7 和 OSX Mountain Lion 中运行:1) java Test 2) java -cp。测试

//Test.java
class HelloWorld {
    public static void main(String[] args){
        System.out.println("Hello World!");
    }
}

1) 对于 Win7 错误:

错误:无法找到或加载主类测试

2)OSX山狮错误:

线程“主”java.lang.NoClassDefFoundError 中的异常:测试原因:java.lang.ClassNotFoundException:在 java.security.AccessController.doPrivileged(Native Method) 的 java.net.URLClassLoader$1.run(URLClassLoader.java:202) 测试) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 在 java .lang.ClassLoader.loadClass(ClassLoader.java:247)

真的不知道这里出了什么问题... :(

谢谢,奥斯卡

4

4 回答 4

1

我的Test.java

class HelloWorld {
  public static void main(String[] args) {
    System.out.println("HW");
  }
}

我的对话bash

Neoten:bin marko$ ls -al
total 8
drwxr-xr-x   .
drwxr-xr-x   ..
-rw-r--r--   HelloWorld.class
drwxr-xr-x   test
Neoten:bin marko$ java HelloWorld
HW
Neoten:bin marko$ 

您没有发布运行它的目录的内容,因此这是您错误的最可能原因。

于 2012-12-06T09:43:44.513 回答
1

The name of the file should be the same as the class name which is public and has the main() method. In your case rename the file name from Test.java will compile and will create HelloWorld.class file not Test.class because there is no Test class declared in your file.

after .class file is created , run it with java HelloWorld

To Know More click here and here

so here's an example

//Filename abc.java
public class hi
{
public static void main(String[] args)
{
 System.out.println("Hell");
}
}

the output

abc.java:1: class hi is public, should be declared in a file named hi.java
public class hi
       ^
1 error

but if you do this

 //Filename abc.java
    class hi
    {
    public static void main(String[] args)
    {
     System.out.println("Hell");
    }
    }

it will create hi.class file so

D:\>java hi
Hell
于 2012-12-06T08:54:26.207 回答
0

您的类名必须与您的文件相同,并且您的类目录位置必须可转换为您的类包。这就是 Java 支持命名空间的方式,没有声明的包称为默认命名空间——不建议使用默认命名空间。

IE

// my/name/space/HelloWorld.java
package my.name.space;

public class HelloWorld {
    ...
}
于 2012-12-06T08:59:07.880 回答
0

看起来您的类必须与文件名同名。
test.java必须包含class test

于 2012-12-06T08:52:01.620 回答