JAVA代码在命令行下的编译

时间:2021-02-05 17:45:07

目的

跟C++一样,JAVA可以通过命令行直接编译得到字节码文件,并且使用java命令运行。通过JAVA的编译和运行命令只是熟悉一下JAVA的一些特征,包括包和目录,classpath,jar格式;而且在调试小程序的时候其实用命令行是足够的。

但是在进行大型项目的时候还是要用较大的IDE,例如eclipse和NetBeans,显然eclipse是比NetBeans要复杂得多的,这里不说。

主要过程是:

  1. javac编译产生class
  2. java 运行class文件
  3. 如果你想用jar文件,那就在2的时候产生jar文件,然后用java -jar 执行它

编译

JAVA的编译和运行需要一个环境变量,以下先讲windows下的命令。 classpath是环境变量,你要运行命令: javac Hello.java的时候是默认的调用了windows的classpath变量的,这个变量代表的目录下面有标准的包;所以如果有不标准的包,就要指出它的完整路径(包括包的名字):

javac -cp .../javax.mail.jar Hello.java

java -classpath .../javax.mail.jar Hello.java

  1. -cp在windows下跟-classpath等价
  2. ...代表任意目录
  3. 在-cp后的目录可以有多个,用分号";"分隔,而且点号表示当前目录

运行

java可以运行class文件也可以运行jar文件,但是运行java时: java Hello.class 错误,而java Hello正确, 这只是一个规范,没有特别的含义,而且也不会跟目录结构名混淆;

JAVA代码在命令行下的编译

常见错误提示

cannot find or load the main class:基本都是因为没有搞对类的位置的;可以这样java -cp . Hello; 也可以设置好环境变量classpath;

你可能会犯一种错: 如果Hello.java 第一行是:package mail; 你就会产生一个mail目录,目录下是Hello.class,这可能不是你输入java Hello时预料的;把package这一行去掉就好咯。

另外,虽然DOS是大小写不敏感的,但是在java执行命令的时候它是敏感的,所以不要把Hello写成hello;

 

ubuntu的区别

路径跟windows写法不一样,分号->冒号;没有cp这个缩写.

参考资料

www.*.com

《JAVA核心技术》