使用java、javac命令行编译工程以及遇到的问题
来源:互联网 发布:安居客网络门店 编辑:程序博客网 时间:2024/04/30 00:28
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/51672813 文章出自:薛瑄的博客
你也可以查看我的其他同类文章,也会让你有一定的收货!
一、java和javac命令行
1、javac命令行
javac.exe用于编译java源文件,生成.class文件
语法:javac [option] source
常用的[option]选项:
A、-classpath <路径>(-cp缩写):指定要使用的类路径或要使用的jar包的路径(jar文件、zip文件(里面都是搜索文件)),使用后会覆盖CLASSPATH的设定
B、-d <路径> :指定源文件编译后生成.class文件的存放位置
2、java命令行
java.exe用于运行javac编译后生成的.class文件
语法:java [option] classname [arguments]
常用的[option]选项:
A、-classpath <路径>(-cp缩写):指定要使用的类路径或要使用的jar包的路径(jar文件、zip文件(里面都是错啦搜索文件)),使用后会覆盖CLASSPATH的设定
B、[arguments]:传递给main函数的参数
二、例子
1、单独一个java程序
public class Demo{ public static void main(String args[]){ System.out.println("This is a test"); }}
命令如下:
javac Demo.java //在当前目录下生成Demo.class文件java Demo //执行Demo.class
也可以通过-d选项指定生成.class文件的位置,如:
javac -d .. Demo.java //在当前目录的上一级目录中生成Demo.class文件,那么执行的时候,就要指定class的路径java -cp .. Demo //表示让java在上一级目录搜索类文件
2、一个带包的java程序
package com.demo;public class Demo{ public static void main(String args[]){ System.out.println("This is a test"); } }
命令如下:
javac Demo.java //在当前目录下生成Demo.class文件java Demo //执行Demo.class
也可以通过-d选项指定生成.class文件的位置,如:
javac -d . Demo.java //按照com.demo的包路径保存.class文件
则会在当前目录下生成一个com/demo/Demo.class文件,如下图:
3、同一个包下,一个类调用另一个类
Tom.java
package com.demo;public class Tom{ public String getMyname(){ return "This is Tom!"; }}
Friend.java
package com.demo;import com.demo.Tom;public class Friend{ public static void main(String args[]){ Tom tom = new Tom(); System.out.println("hello "+tom.getMyname()); }}
由于Friend类调用了Tom类,
1、编译Tom.java
javac -d . Tom.java
然后会按照包结构生成com/demo/Tom.class文件。
2、编译Friend.java文件
javac -cp . -d . Friend.java
- javac会在 -cp 指示的 “.”(当前)目录寻找import com.demo.Tom所表示的路径com/demo/Tom ,
- 然后按照包结构生成com/demo/Friend.class,见下图:
3、运行:java com.demo.Friend
4、一个包下的类条用另一个包下的类
Tom.java
package com.demo1;public class Tom{ public String getMyname(){ return "This is Tom!"; } }
Friend.java
package com.demo2; import com.demo1.Tom; public class Friend{ public static void main(String args[]){ Tom tom = new Tom(); System.out.println("hello "+tom.getMyname()); } }
1、编译Tom.java
javac -d . Tom.java
生成com/demo1/Tom.class;
2、编译Friend.java,
javac -cp . -d . Friend.java
生成com/demo2/Friend.class;
3、运行:java com.demo2.Friend
三、常见错误
1.命令行下执行java程序,找不到或无法加载主类
- ShowMethods.java,编译后得到的文件为:ShowMethods.java.class
- 在命令行执行:java ShowMethods.java (无需加后缀“.class”)
错误原因:
1、ShowMethods.java是有包的(如下),在使用java命令运行生成的class时,必须指定全限定名称java com.example.ShowMethods
package com.example;
2、包名会被转化为路径,所以必须在适当路径,执行java命令(如上图蓝色框)
3、如果xxx.java文件没有包名,在使用java命令运行生成的class时,只需在.class所在目录指定xxx(名称)即可。
转载:
ubuntu下使用java、javac命令行编译工程
命令行使用javac及java编译、运行java程序出现的问题
自己动手编译、运行Java程序
- 使用java、javac命令行编译工程以及遇到的问题
- ubuntu下使用java、javac命令行编译工程
- 如何用java以及javac编译工程
- javac编译Java工程
- 使用javac编译java文件和使用javah生成C/C++头文件 遇到找不到类的问题
- 命令行下JDK自带编译javac和执行java,以及环境变量的原理总结
- javac 命令行编译 java程序
- java,javac命令行编译参数
- 在编译Android 工程时常遇到的问题,以及解决办法。
- linux下使用javac java编译运行java工程
- 使用DOS命令行,用javac编译多目录下(包)的JAVA源程序
- 正确编译和运行带package的文件(使用javac和java命令行)
- 使用javac命令行编译一个目录下的所有.java文件?
- 使用javac编译时碰到的问题
- java以及javac两个命令的使用
- 使用ant编译android工程遇到的问题
- 学习java遇到的小问题,javac和java的一点点使用
- javac/java命令行编译运行---小记
- 用maven管理项目
- linux的sh脚本编程
- 例题:校门外的树
- (seleluim 八) 定位窗口
- 使用PreTranslateMessage(MSG* pMsg)截获键盘数字键
- 使用java、javac命令行编译工程以及遇到的问题
- hdu acm 1010
- 以0为结尾的个数
- @Autowired注解与 @Resource注解的区别
- mybatis一对一关联查询
- 简单选择排序
- MyBatis
- 获取短信验证码
- 新生活开始了