文件结构
包结构中default包下不能有包。因为自定义包中的的类无法调用default包下的类。所以结构需要是这样的
src
- A
– Test1.java - B
– Test2.java
这样才能相互调用。
命令
javac:编译命令。使用参数有 -cp(-classpath)指引用的包的路径,比如 Test1.java中有 import B.Test2,则
javac -cp . .B*.java (注:也可以.BTest2.java,但使用*方便,一下子全包含)
-d 指定生成包的路径,我们可以生成在src下的class,这样比较好看,好整理。即 -d .classes
综上,就是javac -cp .B*.java -d . .classes .ATest1.java
例子
home
│ AddressUtils.java
│ Log.java
│ Receiver.java
│ Sender.java
│ Seq.java
│ Listener.java
│ UdpSocket.java
│ WorkThread.java
│ UxServer.java
│ UxServerIn.java
│ UxSocket.java
│ UxSocketL.java
│ UxSocketS.java
│
├─frames
│ KFrame1.java
│ TFrame.java
│ KFrame.java
│ Frame1.java
│ Frame.java
│ VFrame.java
│ NFrame.java
│
└─tick
Tick.java
ThreadFactory.java
frames包下的Frame引用home下的Seq。UxSocket引用frames中的包。那么如何编译Receiver跟Sender,如下
javac -cp . .home*.java .hometick*.java .homeframes*.java -d .classes .homeReceiver.java javac -cp . .home*.java .hometick*.java .homeframes*.java -d .classes .homeSender.java
注意-cp, -d后跟.前是有空格的,一定要加。不然.home*.java不会被引用
运行
需要进入class所在的文件夹,将包名也加上。比如上面要运行Receiver, 如果不加*home.*则会提示
错误: 找不到或无法加载主类 Receiver
原因: java.lang.ClassNotFoundException: Receiver
cd classes java home.Receiver
- 点赞
- 收藏
- 分享
-
- 文章举报
原文始发于:对于一个复杂的java项目。如何利用命令行来生成class文件并运行
主题测试文章,只做测试使用。发布者:sys234,转转请注明出处:http://www.cxybcw.com/80917.html