1

该文件FactoryDemo.java已成功编译,其中有

package home.city.Desktop.factorydemo;   

我用 using 编译javac -d / FactoryDemo.java,没有报错。

但是当我尝试使用运行它时java home.city.Desktop.factorydemo.FactoryDemo,它会报告:

Exception in thread "main" java.lang.NoClassDefFoundError: home/city/Desktop/factorydemo/FactoryDemo
Caused by: java.lang.ClassNotFoundException: home.city.Desktop.factorydemo.FactoryDemo
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: home.city.Desktop.factorydemo.FactoryDemo. Program will exit.

我已经尝试了很多次,但我找不到问题的解决方案。提前感谢您的帮助。

4

2 回答 2

1

您编译的类必须位于名为: home/city/Desktop/factorydemo

在 Unix 上,只需运行以下命令: mkdir -p home/city/Desktop/factorydemo; mv FactoryDemo.class home/city/Desktop/factorydemo/

为了获得最佳实践,只需将您的 Java 源文件也移动到该文件夹​​中,以便编译器将文件输出到正确的位置。

于 2013-01-07T19:47:54.327 回答
1

FactoryDe​​mo 类是在根目录下创建的,您应该键入以下命令(. 而不是 /)

javac -d . FactoryDemo.java

home.city.Desktop.factorydemo从当前目录开始创建目录。

如果你想在根目录下创建类。您必须键入以下命令才能执行。

java -classpath / home.city.Desktop.factorydemo.FactoryDemo
于 2013-01-07T20:11:25.897 回答