一、Java环境变量

  • 使用 Win + Pause 组合键或在”桌面计算机图标”上右键选择”属性”:

  • 点击”高级系统设置”,在系统属性对话框的高级页签中选择”环境变量”

  • 根据需要设置”用户变量(当前用户有效)”或”系统变量(所有用户有效)”

新建或修改以下变量:

JAVA_HOMEC:\Program Files\Java\jdk1.7.0_01(jdk安装目录)

CLASSPATH.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(复制即可)

Path%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(复制即可)

  • 测试配置是否成功

在命令行下输入:java -version

二、编译、运行Java程序

1、编写程序

public class HelloWorld 
{
	public static void main(String[] args) 
	{
		System.out.println("Hello World!");
	}
}

2、编译

  • 切换到HelloWorld文件所在的目录,执行:

javac HelloWorld.java

  • 执行完之后会生成HelloWorld.class文件

3、运行

  • 执行java HelloWorld,运行刚生成的.class文件

三、编译、运行Java程序(带参数)

1、源码

package com.util;
public class Utils
{
	public static void hi() 
	{
		System.out.println("Hi, Java!");
	}
}

package com.test;
import com.util.Utils;
public class Hi
{
	public static void main(String[] args) 
	{
		Utils.hi();
	}
}
  • 目录结构

2、使用javac -d命令指定编译后的class文件的目录

  • 将class文件编译到当前目录下的classes目录中

javac -d ./classes ./com/test/Hi.java

  • 执行后会自动在classes目录下按包路径创建文件夹

备注:如果Java类中依赖了其他jar里的类,在编译时需通过-Djava.ext.dirs指定jar路径。

例如:

javac MyTest.java -Djava.ext.dirs=./

3、使用-cp-classpath指定class文件路径

java -cp classes com.test.Hi

效果相当于切换到classes目录下,再运行java com.test.Hi

备注:如果Java类中依赖了其他jar里的类,需要在-classpath参数中也将引用的jar添加进去:
java -classpath .;log4j-1.2.17.jar MyTest

四、jar命令

jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files

1、常用选项

  • -c:创建新档案
  • -v:在标准输出中生成详细输出
  • -f:指定档案文件名
  • -m:包含指定清单文件中的清单信息
  • -x:从档案中提取指定的(或所有)文件
  • -C:更改为指定的目录并包含其中的文件

  • Example

2、简单打包一个类

  • jar cvf hello.jar HelloWorld.class

  • 清单文件:

此种方式生成的jar不能使用java -jar hello.jar运行

3、打包多个类且指定清单文件

将complex目录中com文件夹编译后的classes目录中的所有文件打包到hi.jar中:

  • 从上面hello.jar中拷贝一份MANIFEST.MF文件放在complex目录下:

增加:Main-Class: com.test.Hi

Manifest-Version: 1.0
Created-By: 1.7.0_01 (Oracle Corporation)
Main-Class: com.test.Hi

  • 运行 jar cvfm hi.jar MANIFEST.MF -C classes/ .

  • 此时会在complex目录下生成hi.jar

  • 运行java -jar hi.jar

4、解压jar文件到当前目录

  • jar xvf hello.jar

附:

Java Tutorials

PackageClasspath