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

来源:互联网 发布:农村淘宝代收点 编辑:程序博客网 时间:2024/06/06 20:11

怎样编译一个.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包自动找到相应的依赖类)。


1 0
原创粉丝点击