java中有package包,运行时”错误:找不到或无法加载主类“



转载 2016-03-31 10:43:33

java中的打包机制是为了防止程序多个地方出现相同的名字而将局部程序限定在一块的机制。打个比方,在湖北和湖南两个地方,都有一个叫张三的人,那么当我们寻找这个人的时候,就会出现错误:到底是湖北的张三,还是湖南的张三?为了解决这个问题,我们把湖北,湖南这两个地方的所有程序分别打包。调用张三的时候分别带上湖北.张三或者是湖南.张三。这样就不会出错了。打包其实就是新建了一个文件夹,然后把需要打包的程序放在这个文件夹下面。

要注意:

1,package必须是程序中可执行的第一行代码;

2,package语句只能有一句;

3,package命名要求包含的所有字符均为小写,同时不能有特殊字符;

4,package可以有多层,每一层有.隔开,例如:packagechina.hubei.wuhan;(China是一个文件夹,hubei是china下的一个文件夹,wuhan是hubei文件夹下的一个文件夹)

5,package语句后面的分号不要掉。

package运用场合:

1.多个程序员负责同样的一个项目时,不能确保每一个程序员定义的函数名或变量名完全不一样,这个时候每个程序员可以分别将自己负责的部分打包;

2,一个程序员负责一个规模较大的项目,往往不能保证每一处的函数名或变量名完全不同,这时,可以将每一小块区域的部分打包。

总而言之,当遇到以后或者他处可能与之前重复的时候,最好打包处理之。

“错误:找不到或无法加载主类”的原因往往有:1.环境变量处理不当;2,程序名称和入口函数不一样;3,程序中有package。我们主要说的是第三点。

例如,函数的第一行为:packagemsg;(函数名为test)

在编译的时候,我们应该是javac -d . test.java

(-d:表示生成目录,设置编译生成的class文件保存路径,路径与定义的包名和层次相关。

.:表示在当前目录中生成。)


运行的时候,带上包名,即java msg.test