2015-09-03 91 views
0

我开始学习Java,这是我的程序:如何避免错误:无法找到或加载主类

package Hello; 

public class Hello { 

    public static void main(String[] args) { 

     System.out.println("Hello"); 
    } 
} 

我打开终端,去我的工作目录:

cd /path/to/directory/ 

然后编译的程序:

javac Hello.java 

然后试图运行它:

java Hello 

而且我得到这个:

Error: Could not find or load main class Hello 

但如果我删除package Hello;一切正常。

为什么删除该行使程序正常工作,以及如何才能使程序正常工作并仍然保持包行?

我环顾四周,无法找到明确的答案来回答我的问题。人们说

type java -cp . Hello and don't use .class after Hello

但这并不适合我。

+1

尝试运行'java Hello.Hello'(即包含软件包名称)。 – Emd4600

+0

你也需要考虑这个包。顺便说一下,包名应该以小写字母开头。 – Bikku

+0

@ Emd4600我试过并得到相同的错误 – Atlas23250

回答

2

如果你的包是“Hello”,java会认为它位于名为“Hello”的文件夹中。

所以,如果你这样做:

cd /path/to/directory/ 
mkdir Hello 
mv Hello.java Hello/ 
javac Hello/Hello.java 
java Hello.Hello 

它应该工作。但我同意投手,包名应该是小写。

+0

谢谢!我现在明白我的错误 – Atlas23250

相关问题