JAVA代码在命令行下的编译

本文介绍了如何使用命令行编译和运行JAVA程序,并详细解释了环境变量、classpath的配置方法,以及常见错误的解决方式。同时对比了Windows与Ubuntu系统下的操作差异。

目的

跟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正确, 这只是一个规范,没有特别的含义,而且也不会跟目录结构名混淆;

常见错误提示

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.stackoverflow.com

《JAVA核心技术》

转载于:https://www.cnblogs.com/wangzming/p/6691668.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值