带包名的java类编译时报错?

zerov 发布于 2016/10/12 18:09
阅读 302
收藏 1

 当java类文件不带包名时,能编译并运行,但一旦加了包名,能编译过去,却不能运行,提示“找不到主文件”,如下图:

加载中
1
GestureWei
GestureWei
你需要在src目录下运行java com.filter.Ha
GestureWei
GestureWei
回复 @zerov : 编译好的java class就是以目录确定包结构,你将类放入了某个包中,对应编译出来的class就要放到相应的目录结构中。是你自己编译的不对
zerov
zerov
没用,不信你试试
1
畅想的杨海天
畅想的杨海天

这个就设计到很多东西了,这么说,你编译之后一般都是在同目录下生产了Ha.class

但如果有包,那就需要编译之后Ha.class要和包有相同的文件夹,比如package m.n

那就需要有文件夹 m  还有子文件夹n,在n下再有Ha.class

同时运行的时候,要在classpath处运行,就是比如我有个文件夹  E:\java

下面有Ha.java,编译之后就在E:\java\m\n\Ha.class

然后在E:\java这个目录去运行Ha.class

java m.n.Ha

这样就可以运行了

0
螃蟹大叔
螃蟹大叔

你把你的代码贴出来可以么


螃蟹大叔
螃蟹大叔
回复 @zerov : 就是按照留下说的运行
zerov
zerov
代码如下,删除包名能运行: //package com.filter; //此行只有删除才能DOS命令行下编译成功 class Ha { public static void main(String[] args) { System.out.println("Hello World!"); } }
0
阿信sxq
阿信sxq

这个是你自己操作有问题,既然有package那一句,那就应该是在对应的目录下面,而你那样进行编译,肯定就不行了啊,赞同楼上的说法。

还有顺便说一下,一开始问问题的时候就应该把代码给出来,要不然别人摸不着头脑

返回顶部
顶部