为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下在Java中如何使用Package建一个新的包呢?

请问一下在Java中如何使用Package建一个新的包呢?

潇湘沐 2021-11-03 07:07:08
小弟最近我再写一套开发工具。自动生成Bean后要放到一个新建的包中,可是当我实例化Package的时候老是报不可视错误,那么我如何要使用Package新建一个包呢?或者在Java中如何使用代码在当前项目中创建一个新的包?请各位大哥帮帮小弟吧,小弟我先谢谢各位了。
查看完整描述

3 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

编译器往往从当前目录下开始,根据类的package名称来搜索文件,所以我们应该把A.java放在F:\test\edu\main目录下,并在F:\test下运行javac A.java命令,这样就可以找到A.java文件了吧,可惜事与愿违,编译报错,找不到源文件!!!

因为上面可以根据包名找B.java是使用了编译器自带的make功能,而这里我们直接编译A.java,没有这个功能,也就是说直接编译的时候不能根据包名找到相关的类,那我们该怎么办呢?

其实解决方案很简单,既然编译器不能根据包名找到A类,那把A类的绝对路径直接告诉编译器,事实上就是这么做的,具体操作为:在命令行模式下进入F:\test目录,然后运行编译命令javac F:\test\edu\main\A.java,可以成功编译生成A.class文件。(注意:如果不在此目录下执行编译命令的话,就要将f:\test加入到当前的classpath中为make工具提供B.java的位置信息)

接下来就要运行这个class文件了,运行仍然在F:\test目录下执行(注意:如果不在此目录下执行运行命令的话,一定要把F:\test加入到当前的classpath中),命令为:java edu.main.A,很显然,这里就是根据输入的package名称找到对应的class文件,并检验找到的class文件的与输入的包名是否匹配(例如:如果你在edu目录下新建一个test目录,将A.class文件拷贝进去,输入java edu.test.A 的话还是会报错:找不到class文件)。可能有人要问:为什么运行的时候又可以根据包名找到相应的class文件呢?因为运行的时候默认是从当前路径开始搜索的,如果当前路径找不到的话,就在系统的classpath中找,如果再找不到就会报错。

查看完整回答
反对 回复 2021-11-06
?
慕森王

TA贡献1777条经验 获得超3个赞

package com.bj.wfj;
package是关键字,后面的自己定义,几层都行,随便写,自动生成你所定义的包,呵呵。
补充下,这行代码要放在第一行。

查看完整回答
反对 回复 2021-11-06
?
HUX布斯

TA贡献1876条经验 获得超6个赞

javac -d . xxx.java 打包编译,我觉得应该不是你要的!

查看完整回答
反对 回复 2021-11-06
  • 3 回答
  • 0 关注
  • 659 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信