码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA代码在命令行下的编译

时间:2017-04-11 00:39:35      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:输入   ...   实用   ide   eclipse   images   位置   命令行   标准   

目的

跟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核心技术》

JAVA代码在命令行下的编译

标签:输入   ...   实用   ide   eclipse   images   位置   命令行   标准   

原文地址:http://www.cnblogs.com/wangzming/p/6691668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!