关于JDK编译问题的解决

本文介绍如何在Java中正确地编译多级包结构的项目,包括编译命令的使用、解决编译错误的方法及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  PackageTest  
          |  
          |__source       Main.java  
                |  
                |__pktest       PackageTest.java       PackageSecond.java  
                      |  
                      |__subpk     PackageSub.java  

 

 

这个包有3层目录。在每个类文件内需要指明包的名字,然后需要把每个.java文件放在相应名字的目录下,然后在source目录进行编译。命令为javac Main.java,这样每个目录下的.java文件都可以被编译为.class文件了。但pktest下面的那个PackageTest.java没有被自动编译。所以需要单独编译一下。命令为在source目录下打入javac -classpath e:/PackageTest/source/pktest;e:/PackageTest/source/pktest/subpk;. ./pktest/PackageTest.java

或者使用相对路径:javac -classpath pktest;pktest/subpk;.  pktest/PackageTest.java

编译成功。然后在source目录下打入java pktest.PackageTest即可正确运行程序了。

另外需要检查每个main()函数里面是否缺少String[] args这个残数。否则出错。

在某个类文件所在的目录进行编译包的话,如果该文件内import了子目录里面的类,则总是出错。比如在e:/PackageTest/source/pktest>目录内对里面的PackageTest.java进行编译,输入命令:javac -classpath subpk;. PackageTest.java 则出错信息如下:pktest.subpk 不存在。说明“该文件在编译的时候要到相应的包里面引用有关类。结果从当前目录开始算起,没有所谓的pktest.subpk目录。因此编译失败。所以这样的分层包的编译,需要在包含"包"的上级目录进行编译,也即在e:/PackageTest/source>内进行编译。输入javac -classpath pktest;pktest/subpk;.  pktest/PackageTest.java。


2007-3-19上午9:20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值