用java自带工具javac和java编译运行java程序

怎样编译一个.java源文件,得到它的.class文件?

1,使用eclipse,一般设置的是自动编译,也就是在你ctrl + s保存的时候,eclipse就帮你自动编译成功了,你到对应的文件夹下就能找到它的.class文件。

2,使用javac命令。

在javac和java编译运行java程序,遇到了问题,如下。

package hcg.test;

public class Main {
	public static void main(String[] args) {
		System.out.println("Hello, World!");
	}
}

注意到源文件第一行有一条打包语句,package hcg.test。

javac Main.java命令在当前目录生成了一个Main.class文件,不过这个.class文件并不能成功运行。这样做是错误的。

原因是,java运行.class文件时,会依次搜索CLASSPATH环境变量里指定的系列路径,在这些路径下按照和包层次相同的目录结构搜索.class文件,

所以,.class文件必须放到和包层次相同的目录结构里才有效,所以该Main.class必须放到hcg\test目录下。(另外,一般CLASSPATH环境变量包含了当前路径)

在使用javac的时候,加上-d选项,指定生成的.class文件的存放路径,一般指定为当前路径(“.”表示当前路径),同时-d选项还会自动生成相应的包层次目录结构,而不加-d是不会自动生成的!!!所以,一般不要省略-d选项。


另外,注意java运行的时候,采用全限定类名!

下面要做的事情就是,把自己写好的hcg.test.Main打包,然后再引用这个包,编译、运行。

先写一个Test类引用刚才写的hcg.test.Main类。

import hcg.test.Main;
class Test {
	public static void main(String[] args) {
		Main m = new Main();
		m.main(null);
		System.out.println("This is from Test");
	}
}

然后将hcg.test.Main类打包,编译和运行Test类,结果如下。


hcg是javac -d . Main生成的.class文件夹,打包成hcg.jar文件。

编译运行Test类的时候,都用-classpath选项,指定搜索了hcg.jar,不然不成功(不知道为什么在当前路径下不能通过jar包自动找到相应的依赖类)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值