JDK还是JRE
JRE(Java Runtime)是运行Java程序需要的。JDK(Java Development Kit)包含JRE和开发工具(比如编译器和调试器)是编写Java程序需要的,就是说编写Java程序需要JDK。
1. Windows上安装JDK
Step 0(a):卸载JDK/JRE的旧版本
推荐使用最新版本的JDK,装多个版本会很凌乱的。 “Control Panel” ⇒ Program and Features ⇒ 卸载“Java SE Development Kit”和“Java SE Runtime”
Step 0(b):要懂得Windows CMD shell
不懂的话,请参见Windows 程序员的生存之道
Step 1:下载JDK
- 下载JDK,点 这里
- 在“Java SE 8ux”里的JDK中,点击下载按钮
- 别忘了勾选“同意”
- 选择版本x86或者x64
Step 2:安装JDK和JRE
双击下载后的exe,一路next,安装完毕
Step 3:配置系统环境变量
Start ⇒ Control Panel ⇒ System ⇒ (Vista/7/8) Advanced system setting ⇒ Environment Variables ⇒ 编辑Path
Variable name:PATH
Variable value:c:\Program Files\Java\jdk1.8.0_xx\bin;
编辑 JAVA_HOME,JRE_HOME,CLASSPATH(dt.jar, tools.jar)
Step 4:验证JDK的安装
- 进入CMD,输入 path 回车:
prompt> **path** PATH=**c:\Program Files\Java\jdk1.8.0_xx\bin;**[other entries]
- 输入java -version, javac -version
prompt> **java -version** java version "1.8.0_xx" Java(TM) SE Runtime Environment (build 1.8.0_xx-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode) prompt> **javac -version** javac 1.8.0_xx
Step 5: 编写测试程序Hello.java
/* * First Java program to say Hello */ public class Hello { // Save as "Hello.java" under "d:\myproject" public static void main(String[] args) { System.out.println("Hello, world!"); } }
运行一下:
**javac Hello.java** **java Hello** Hello, world!
Step 6:下载JDK API文档Demos和Samples
http://www.oracle.com/technetwork/java/javase/downloads/index.html
2. Ubuntu上安装JDK
请参阅:Ubuntu 上安装JDK
以上只是简单的说明一下,没有什么干货,下面才是我想要的
3. 本地库和外部JAR文件的使用
外部的Java包,比如Servlet、MySQL、Connector通常以jar包发布(jar:Java Archive, 包含多个Java类的单一文件包)并可能伴随着本地库(Windows下为”.lib”和”.dll”,linux/Mac下为”.a”和”.so”)
外部的JAR文件(“.jar”)
如果外部的JAR文件没有正确的引入:
- 编译阶段,你将收到编译错误“can not find symbol” 类属于外部包
- 运行阶段,将收到运行时错误“Could not find or load main class xxx”或者“NoClassDefFoundError”
可以这样做包含JAR文件:
- Copy所有的外部JAR文件到Java扩展目录里。
- Windows上该目录在“<java_home>\jre \lib\ext”。
- Mac上该目录在“/Library/Java /Extensions”和“/System/Library/Java/Extensions”。
- Ubuntu该目录在“<java_home>\jre \lib\ext”和”/usr/java/packages/lib/ext”
Java扩展目录存放在Java系统属性“java.ext.dirs”里,可以使用如下代码打印:
System.out.println(System.getProperty(“java.ext.dirs”)).
- 通过CLASSPATH环境变量包含JAR文件,CLASSPATH可以包含目录(目录包含Java
类)或者Jar文件。如果设置CLASSPATH,你必须同时包含当前目录(使用“.”标识)。- Windows下,Control Panel ⇒
System ⇒ Advanced system settings ⇒ Advanced ⇒ Environment
Variables ⇒ System Variables ⇒ New ⇒ 在“Variable
name”里,输入“CLASSPATH” ⇒ 在“Variable
value”里输入“.;path1\xxx.jar;path2\yyy.jar”。 - Linux和Mac下,编辑~/.profile或者~
/.bash_profile(或者 /etc/profile系统范围设置)在文件末尾添加如下代码:
export CLASSPATH=.:path1/xxx.jar:path2/yyy.jar
- Windows下,Control Panel ⇒
- 使用命令时,通过-cp 火鹤classpath 添加jar文件,
如下:// Compile Java source code > javac -cp .:path1/xxx.jar:path2/yyy.jar ClassName.java // Run Java class > java -cp .:path1/xxx.jar:path2/yyy.jar ClassName
外部的本地库(.dll, .lib, .so, .a)
有些外部包可能提供静态或者动态的本地包,本地库所在的目录可通过JRE属性 “java.library.path”获得,该path一般包含PATH环境变量中的所有目录但不是必须的。
Java在编译时不引入本地库,但如果设置不正确,在运行时会报错
“java.lang.UnsatisfiedLinkError: no xxx in
java.library.path”。
可以这样包含本地库:
- Copy本地库到系统库目录,比如:c:\windows
\system32(Windows),/usr/lib或者/usr/local/lib(linux, Mac) - 运行时使用-Djava.library.path=xxx,比如:
> java
-Djava.library.path=xxx ClassName
文章参见这
里