1. 首页
  2. IT资讯

对于一个复杂的java项目。如何利用命令行来生成class文件并运行

文件结构

包结构中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文件并运行 对于一个复杂的java项目。如何利用命令行来生成class文件并运行
BenjaminYoung29
发布了89 篇原创文章 · 获赞 27 · 访问量 12万+

私信 关注

原文始发于:对于一个复杂的java项目。如何利用命令行来生成class文件并运行

主题测试文章,只做测试使用。发布者:sys234,转转请注明出处:http://www.cxybcw.com/80917.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code