在介绍Java Dos命令之前,先介绍几个常用的Windows Dos命令
cd → 指定目录
cd.. → 返回上级目录
cd/ → 返回到根目录
dir → 列出当前目录下的所有文件夹和文件
md → 创建目录
rd → 删除目录
del → 删除目录下的所有文件(子目录的文件不会被删除)
ren → 重命名
copy → 复制文件
D:\>copy test.txt a → 如果text.txt文件和a目录都在D盘,不要写全目录
D:\>copy C:\a\test.txt C:\b → 如果text.txt和a目录都不在D盘,那么要写全目录
下面开始介绍Java中的一些常用的Dos命令
编译多个源文件
有两种方法:
1、如果文件都在同一目录
假设有四个文件:HelloWorld1.java、HelloWorld2.java、HelloWorld3.java、HelloWorld4.java
那么可以这么写:javac HelloWorld*.java或者javac *.java
2、如果文件不在同一目录
假设有四个文件:HelloWorld1.java、HelloWorld2.java、HelloWorld3.java、HelloWorld4.java。它们分别在1、2、3、4这四个文件夹里面
那么可以先建一个文件(FilesList.txt)在D盘,然后在此文件里面添加如下内容
D:\1\HelloWorld1.java
D:\2\HelloWorld2.java
D:\3\HelloWorld3.java
D:\4\HelloWorld4.java
然后直接输入命令javac @FilesList.txt
将.java文件和.class分开
如果直接用javac HelloWorld.java,那么编译后的HelloWorld.class和HelloWorld.java在同一目录下,那么,怎么让它们不在同一目录下呢?
D:> dir
classes
lib
src
D:> dir src
tianjf
D:> dir src\tianjf
HelloWorld1.java
HelloWorld2.java
D:> dir lib
Banners.jar
D:> dir classes
D:> javac -sourcepath src -classpath classes:lib\Banners.jar \src\tianjf\*.java -d classes\tianjf
D:> dir classes\tianjf
HelloWorld1.class
HelloWorld2.class
将.class打包成.jar文件
jar cvf test.jar *.class
编译运行时引用外部包
首先,将下面的Student.java编译成Student.class,再打包成Student.jar
public class Student {
private String name;
public String getName() {
return name;
}
public void setName(String pName) {
this.name = pName;
}
}
然后,编写以下测试程序:
public class Test {
public static void main(String[] args) {
Student stu = new Student();
stu.setName("Jack");
System.out.println(stu.getName());
}
}
最后,用命令行编译运行。
如果Test.java和Student.jar在同一目录下:
编译:D:\>javac -classpath Student.jar Test.java
运行:D:\>java -classpath Student.jar; Test
如果Test.java和Student.jar不在同一目录下:
编译:D:\>javac -classpath D:\lib\Student.jar Test.java
运行:D:\>java -classpath D:\lib\Student.jar; Test
注:如果有多个jar包需要引用,那么可以用分号隔开,另外,classpath可以简写为cp
编译带有package的java文件
假设Test.java的包定义如下:
package com.test;
并且Test.java保存在D:\java目录下。
那么:
编译:D:\java>javac Test.java -d .\ (这里会按照package的定义自动建立相应的目录,然后把生成的字节码文件存放进去,D:\java\com\test\Test.class)
运行:D:\java>java com.test.Test
注:-d的意思就是指定编译后文件的存放目录,但是-d指定的目录不会自动创建,要手动创建
-verbose : verbose是“冗长的,啰唆的,累赘的”的意思,也就是把编译的步骤,过程显示出来
编译:D:\>javac -verbose -d com/test HelloWorld.java
-encoding : 指定源文件的编码,注意不是.class文件的编码
编译:D:\>javac -encoding UTF-8 -d com/test HelloWorld.java
指定读取java文件采用UTF-8编码
-source
当你从sun安装了某个版本的JDK,而其实该JDK却包含多个版本的编译器。-source参数就是指定用哪个版本的编译器对java源码进行编译。如果你的java源
码不符合该版本编译器的规范的话,当然就不能编译通过。
编译:D:\>javac -source 1.6 HelloWorld.java
-target
该 命令用于指定生成的class文件将保证和哪个版本的虚拟机进行兼容。我们可以通过-target 1.2来保证生成的class文件能在1.2虚拟机上进行运行,但是1.1的虚拟机就不能保证了。因为java虚拟机的向前兼容行,1.5的虚拟机当然也 可以运行通过-target 1.2让生成的class文件。
每个版本编译器的默认-target版本是不太一样的,
比如:
JDK1.2版本编译器支持-target 1.1,-target 1.2,-target 1.3,-target 1.4,-target 1.5,-target 1.6,它默认的就是1.1
JDK1.4版本编译器只支持-target 1.4 和-target 1.5
JDK1.5版本编译器就只支持-target 1.5
-deprecation
如果java源码中使用了的不鼓励使用的类或类的Field或类的方法或类的方法覆盖,那么如果使用了该参数,将显示关于此的的详细信息,否则只有个简单的Note.
对于以下代码:
public class HelloWorld {
public static void main(String[] args) {
Thread t = new Thread();
t.destroy();
System.out.println("Hello World!");
}
}
执行命令:D:\>javac -deprecation HelloWorld.java
结果会提示t.destroy();不推荐使用。
转载于:https://www.cnblogs.com/bdqnnb/archive/2013/03/27/2984522.html