cmd编译java命令_使用CMD命令编译执行java命令

写程序时,有时候需要动态编译执行,经过各种百度及实战,总结一些使用经验。

.java文件分为有包名,无包名,又分为有jar包,无jar包,是否指定jre等等。

接下来总结如下:

cmd 编译执行java命令

场景:

jre目录:c:/java/jre

无包名的java文件1:c:/project/src/test1.java

无包名的java文件2:c:/project/src/test2.java

有包名的java文件1(包名为name):c:/project/src/name/test1.java

有包名的java文件2(包名为name):c:/project/src/name/test2.java

jar包1目录:c:/project/lib/jarTest1.jar

jar包2目录:c:/project/lib/jarTest2.jar

编译到的目录:c:/project2/bin2

无包名class1文件目录:c:/project/bin/test1.class

有包名class1文件目录:c:/project/bin/name/test1.class  (包名:package name;)

cmd设置javahome环境变量

cmd设置classpath环境变量

一,编译

(一),任意目录打开cmd

(1)编译到java文件同级目录

1,无jar包无包名

单个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp c:/project/src/test1.java

多个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp c:/project/src/test1.java c:/project/src/test2.java2,有jar包无包名

单个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp .;c:/project/lib/jarTest1.jar;c:/project/lib/jarTest2.jar c:/project/src/test1.java

多个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp .;c:/project/lib/jarTest1.jar;c:/project/lib/jarTest2.jar c:/project/src/test1.java c:/project/src/test2.java3,无jar包有包名

单个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp c:/project/src/name/test1.java

多个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp c:/project/src/name/test1.java c:/project/src/name/test2.java4,有jar包有包名

单个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp .;c:/project/lib/jarTest1.jar;c:/project/lib/jarTest2.jar c:/project/src/name/test1.java

多个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp .;c:/project/lib/jarTest1.jar;c:/project/lib/jarTest2.jar c:/project/src/name/test1.java c:/project/src/name/test2.java         (2)编译到目标目录c:/project2/bin2

在最后加  -d  c:/project2/bin2

1,无jar包无包名

2,有jar包无包名

3,无jar包有包名

4,有jar包有包名

(二),相对目录打开cmd(即进入目标目录打开cmd)

(1)编译到java文件同级目录

1,无jar包无包名

进入目录:c:/project/src/

单个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp test1.java

多个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp test1.java test2.java2,有jar包无包名

进入目录:c:/project/src/

单个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp .;c:/project/lib/jarTest1.jar;c:/project/lib/jarTest2.jar test1.java

多个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp .;c:/project/lib/jarTest1.jar;c:/project/lib/jarTest2.jar test1.java test2.java3,无jar包有包名

进入目录:c:/project/src/name/

单个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp test1.java

多个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp test1.java test2.java4,有jar包有包名

进入目录:c:/project/src/name/

单个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp .;c:/project/lib/jarTest1.jar;c:/project/lib/jarTest2.jar test1.java

多个java文件编译:c:/java/jre/bin/javac -encoding utf-8 -cp .;c:/project/lib/jarTest1.jar;c:/project/lib/jarTest2.jar test1.java test2.java         (2)编译到目标目录c:/project2/bin2

在最后加  -d  c:/project2/bin2

1,无jar包无包名

2,有jar包无包名

3,无jar包有包名

4,有jar包有包名

二,运行(带main方法的class,且不需要带后缀)

(一),任意目录打开cmd

1,无jar包无包名

c:/java/jre/bin/java -cp c:/project/bin test12,有jar包无包名

c:/java/jre/bin/java -cp .;c:/project/lib/jarTest1.jar;c:/project/lib/jarTest2.jar;c:/project/bin test13,无jar包有包名

c:/java/jre/bin/java -cp c:/project/bin name.test14,有jar包有包名

c:/java/jre/bin/java -cp .;c:/project/lib/jarTest1.jar;c:/project/lib/jarTest2.jar;c:/project/bin name.test1      (二),相对目录打开cmd(即进入目标目录打开cmd)

1,无jar包无包名

进入目录:c:/project/bin

c:/java/jre/bin/java -cp test12,有jar包无包名

进入目录:c:/project/bin

c:/java/jre/bin/java -cp .;c:/project/lib/jarTest1.jar;c:/project/lib/jarTest2.jar test13,无jar包有包名

进入目录:c:/project/bin

c:/java/jre/bin/java -cp name.test14,有jar包有包名

进入目录:c:/project/bin

c:/java/jre/bin/java -cp .;c:/project/lib/jarTest1.jar;c:/project/lib/jarTest2.jar name.test1

注意事项:

(1)可能需要设置classpath,可以cmd设置,比如  set classpath=c:/java/jre/lib/dt.jar;c:/java/jre/lib/tools.jar

注意要把jdk/lib/tools.jar复制到jre/lib/tools.jar中,因为jre没有

(2)jre只需要文件夹就可以

(3)在cmd中jre可以是绝对目录,在Runtime.exec()中cmd是相对目录,相对于java项目根目录

(4)编译的时候,java文件绝对目录就是java文件所在最后目录,运行的时候,绝对目录是最上级包目录

(5)本文档可供动态编译执行参考

欢迎交流学习!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值