命令行编译运行java工程

平时建立java工程都是借助eclipse或intellij这些ide编辑器来构建,对于java工程的实际编译执行原理,从未了解过。作为一个曾经的C++程序员,对于源码刨根问底的那份执着从未丢过。于是今天就写了这样的一个例子进行测试。
1.首先建立个跟目录MyJavaTest。
2.建立第一个MyJavaTest\src\com\common\sayHellojava,代码如下:

package com.common;
public class sayHello{
    public void say(){
     System.out.println("hello boy");
    }
}

3.建立第二个java文件MyJavaTest\src\com\major\HelloWorld.java,代码如下:

package com.major;
import com.common.*;

public class HelloWorld{
    public static void main(String[] args){
        sayHello sayhello = new sayHello();
        sayhello.say();
        //System.out.println("hello boy");
    }
}

4.在MyJavaTest跟目录下执行javac -d classes src\com\common\sayHello.java命令编译sayHello.java文件生成对应的class文件,并存放在classes\src\com\common\目录,这里的-d命令,不用解释,也知道是什么意思了吧,classes是自定目的路径。
5.接着执行javac -cp classes -d classes src\com\major\HelloWorld.java编译HelloWorld.java文件生成对应的class文件,并存放在classes\src\com\major\目录。
然后进入classes目录下,执行java com.major.HelloWorld。终于成功了。
运行结果
编译HelloWorld.java需要引入sayHello这个类,同时还要 -cp classes表明classpath依赖路径为classes目录,告诉java编辑器到该目录下寻找sayHello类。不使用该命令,则需在环境变量里面添加classpath,但是这样,不同的工程构建,就需要改动一次其值,岂不是很麻烦。最后执行的时候,如何执行java HelloWorld会报错,因为HelloWorld属于com.major包下,这是我的一时疏忽,不过从报错的顺序里,我们可以看出java编辑器载入执行类是如何查找该类的。
至此,纠结我多日的这一困惑,终于得到解决了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值