2017-08-29 59 views
0

文件“HelloDemo.java”路径“/test/hello/HelloDemo.java”错误类未找到固定的,但我不明白为什么

package test.hello; 

public class HelloDemo { 
    public static void main(String[] args) { 
     System.out.print("Hello!!"); 
    } 
} 

,当我“跑”了,错误发生。

Building HelloDemo.java and running HelloDemo 
Error: Could not find or load main class HelloDemo 

然后,我改变了代码。

//package test.hello; 

public class HelloDemo { 
    public static void main(String[] args) { 
     System.out.print("Hello!!"); 
    } 
} 

当我“运行”它时,代码成功输出。

Building HelloDemo.java and running HelloDemo 
Hello!! 

这是关于“运行”的screenshot。 我修正了一个错误,但我不知道为什么,我需要帮助,谢谢!

如果我想保留包的取消注释,如何解决它?

+1

您的第一个“未固定”版本与第二个版本运行得一样好。添加主要方法后,你可能忘记保存它吗? –

+0

我在运行之前保存了它。我的IDE是ide.cloud9.io –

回答

0

这是因为您在运行文件后可能更改了文件的位置。因此,正在运行的配置应该更改为在构建的jar中查找新的test.hello.HelloDemo类,而不再是HelloDemo(最初可能在默认包中)。你的IDE是什么?

备注:这不是因为您更改了文件的类路径更改的位置,反之亦然。

上的IntelliJ,你应该这样做:https://www.jetbrains.com/help/idea/creating-and-editing-run-debug-configurations.html

+0

我的IDE是ide.cloud9.io –

+0

检查此链接:https://docs.c9.io/docs/running-and-debugging-code并修改运行配置以设置正确的类。如果你把“X.Y包”放在文件中,那么你的类路径是X.Y.ClassName – belka

+0

如果回答你的问题,请将问题标记为回答。 – belka

0

使用您的IDE创建一个包并添加您的类到它。包名将自动附加到顶部。 Reguardless的IDE,文件夹结构应该匹配包结构,你的问题可能在这里。

+0

包名将自动附加到cloud9 IDE中?为什么我看不到它? –

+0

然后,您必须手动将文件夹层次结构与包层次结构匹配。 –

0

类的名字实际上是包加类名。在第一种情况下,您不能运行HelloDemo,因为这不是类名。班级名称是test.hello.HelloDemo

通过注释掉包装,您基本上已将类重命名为HelloDemo,因此它会运行。

另外,当用main运行class时,你必须在正确的位置。例如,如果班级为test.hello.HelloDemo,则您的文件夹结构将为/test/hello/HelloDemo.java

您必须在/并从那里运行test.hello.HelloDemo

相关问题