使用 NetBeans 编译 java class 但 Linux 上的控制台出错
Compile java class with NetBeans but error with console on Linux
在 NetBeans 8.0.2 中,我做了一个简单的 "Hello World" class 编译并且一切正常。
public class OOP_HW3 {
public static void main(String[] args) {
System.out.println("Hi ");
}
}
另一方面,当我使用控制台和 运行 导航到此文件夹时:
$ javac OOP_HW3.java // OK
$ java OOP_HW3
Exception in thread "main" java.lang.NoClassDefFoundError: OOP_HW3 (wrong name: oop_hw3/OOP_HW3)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
....
我可以很容易地 运行 这个文件与控制台在任何其他目录中,但在 NetBeans 项目中给我错误。我错过了什么?
从 java 文件的顶部删除 package
定义。
运行 您所在位置的以下命令 运行ning 当前命令如下:
cd ..
java oop_hw3.OOP_HW3
由于您使用的是包,因此您需要位于顶部,即父目录,然后 运行 具有完全限定的包名称,后跟 class 定义主要方法的位置。
在 NetBeans 8.0.2 中,我做了一个简单的 "Hello World" class 编译并且一切正常。
public class OOP_HW3 {
public static void main(String[] args) {
System.out.println("Hi ");
}
}
另一方面,当我使用控制台和 运行 导航到此文件夹时:
$ javac OOP_HW3.java // OK
$ java OOP_HW3
Exception in thread "main" java.lang.NoClassDefFoundError: OOP_HW3 (wrong name: oop_hw3/OOP_HW3)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
....
我可以很容易地 运行 这个文件与控制台在任何其他目录中,但在 NetBeans 项目中给我错误。我错过了什么?
从 java 文件的顶部删除 package
定义。
运行 您所在位置的以下命令 运行ning 当前命令如下:
cd ..
java oop_hw3.OOP_HW3
由于您使用的是包,因此您需要位于顶部,即父目录,然后 运行 具有完全限定的包名称,后跟 class 定义主要方法的位置。