Java开发工具包(javadevelopmentkit,JDK)正式命名为“Java平台标准版”或“javase”,用于编写Java程序。JDK可以从sun microsystems(现在是Oracle的一部分)免费获得。JDK(javase)的母站点是http://www.oracle.com/technetwork/java/javase/overview/index.html。
“JDK”还是“JRE”?
运行Java程序需要JRE(Java运行时)。JDK(Java开发工具包)包括JRE和开发工具(如编译器和调试器),是编写和运行Java程序所必需的。换句话说,JRE是JDK的一个子集。因为您应该编写Java程序,所以应该安装JDK,其中包括JRE。
JDK版本
参考:“Java版本历史记录”http://en.wikipedia.org/wiki/Java_version_history。
1. JDK Alpha和Beta(1995):Sun Microsystem于1995年9月23日发布了Java。
2. JDK1.0(1996年1月):原名Oak(以James Gosling办公室外的橡树命名)。在JDK1.0.2中重命名为Java1。
3. JDK1.1(1997年2月):介绍了AWT事件模型、内部类、JavaBean、JDBC和RMI。
4. J2SE1.2(JDK1.2)(1998年12月):重新命名为“Java2”,并将JDK重命名为J2SE(Java2标准版)。还发布了J2EE(Java2EnterpriseEdition)和J2ME(Java2MicroEdition)。包括JFC(Java基础类-Swing、Accessibility API、Java2D、可插入的外观和感觉以及拖放)。还介绍了集合框架和JIT编译器。
5. J2SE1.3(JDK1.3)(2000年5月):引入了Hotspot JVM。
6. J2SE1.4(JDK1.4)(2002年2月):引入了断言语句、非阻塞IO(nio)、日志API、图像IO、JavaWebStart、正则表达式(regex)支持。
7. J2SE5.0(JDK5)(2004年9月):正式命名为5.0而不是1.5(通过删除1)。介绍了泛型、自动装箱/取消装箱、注释、枚举、varargs、for each循环、静态导入。
8. JavaSE6(JDK6)(2006年12月):将J2SE重命名为JavaSE(Java平台标准版)。没有新的语言功能。
9. JavaSE7(JDK7)(2011年7月):继Oracle购买Sun Microsystem之后的第一个版本,也就是OracleJDK。在switch语句中引入了字符串、二进制整数文本、允许在数字文本中使用下划线、改进了泛型实例创建的类型推断(或菱形运算符<>)、捕捉多个异常类型并通过改进的类型检查重新引发异常。
10. JavaSE8(JDK8)(LTS)(2014年3月):支持Lambda表达式、接口中的默认和静态方法、改进的集合和JavaScript运行时。还集成了JavaFX图形子系统。
11. JavaSE9(JDK9)(2017年9月21日):介绍了Jigsaw项目下的JDK(模块)、Javashell(jshell)等的模块化。请参阅“JDK9新特性”。
12. JavaSE10(18.3)(JDK10)(2018年3月):为类型推断局部变量引入了var(类似于JavaScript)。引入了基于时间的版本控制,每年3月和9月发布两个版本,表示为YY.M。删除了本机头生成工具javah。请参阅“JDK10新特性”。
13. JavaSE11(18.9)(LTS)(JDK11)(2018年9月):将var扩展到lambda表达式。标准化HTTP客户端java.net.http. 支持TLS 1.3。清理JDK和安装包(删除了JavaFX、JavaEE、CORBA模块、不推荐使用的Nashorn JavaScript引擎)。OracleJDK不再免费用于商业用途,但OpenJDK仍然是免费的。
14. JavaSE12(19.3)(JDK12)(2019年3月):开关表达式(预览)。
15. JavaSE13(19.9)(JDK13)(2019年9月):切换表达式(预览),多行文本块(预览)。
16. JavaSE14(20.3)(JDK14)(2020年3月):记录(预览)
17. Java SE 15(20.9)(JDK 15)(2020年9月)
如何在Windows上安装JDK
步骤0:卸载旧版本的JDK/JRE
我建议您只安装最新的JDK。尽管您可以同时安装多个版本的JDK/JRE,但这很麻烦。
如果您以前安装过旧版本的JDK/JRE,请卸载所有这些版本。转到“控制面板”⇒(可选)“程序”⇒“程序和功能”⇒“卸载所有以“Java”开头的程序,如“Java SE开发工具包…”、“Java SE运行时…”、“Java X更新…”等。
步骤1:下载JDK
1. 转到Java SE下载站点@http://www.oracle.com/technetwork/java/javase/downloads/index.html。
2. 在“Java SE下载,Java平台,标准版”下⇒“Java SE 15”⇒单击“Oracle JDK下载”链接。
3. 为您的操作系统选择JDK,即“Windows”。下载“windowsx64安装程序”(例如,“jdk-15.0.{x}\uwindows-x64_bin.exe
文件“-大约159MB),其中{x
}是一个快速变化的更新编号。
步骤2:安装JDK
运行下载的安装程序(例如,“jdk-15.0.{x}\uwindows-x64_bin.exe
文件”).
默认情况下,JDK安装在目录“C:\Program Files\Java\JDK-15.0.{x}”中,其中{x}表示更新号。接受默认值并按照屏幕说明安装JDK。
使用“文件资源管理器”,导航到“C:\Program Files\Java”检查子目录。注意JDK安装目录JDK-15.0.{x},特别是更新号{x},这将在下一步中用到。
在本文中,我将JDK安装目录称为<JAVA_HOME>。
步骤3:(跳过JDK15不需要)在路径中包含JDK的“bin”目录
Windows的命令提示符(CMD)在当前目录和PATH环境变量(或系统变量)中列出的目录中搜索可执行程序。JDK的程序(如Java编译器)编译工具“和Java运行时”java.exe文件)位于JDK安装目录的子目录“bin”中。您需要在运行JDK程序的路径中包含JDK的“bin”。
要在Windows 10中编辑PATH环境变量,请执行以下操作:
1. 启动“控制面板”⇒(可选)“系统和安全”⇒“系统”⇒单击左窗格上的“高级系统设置”。
2. 切换到“高级”选项卡⇒单击“环境变量”按钮。
3. 在“系统变量”(底部窗格)下,向下滚动以选择变量“路径”⇒单击“编辑…”。
4. 对于较新的Windows 10:
您将看到一个列出所有现有路径条目的表(如果没有,转到下一步)。单击“新建”⇒单击“浏览”并导航到JDK的“bin”目录,即“c:\Program Files\Java\JDK-15.0.{x}\bin
”,其中{x}是您的安装更新号⇒选择“上移”将此条目一直移到顶部。
5. 对于旧版Windows 10(是时候换电脑了!):
(注意:在执行此步骤之前,请阅读本段3次!在101%确定之前,不要按“应用”或“确定”。没有撤消!!!)
(为了安全起见,请在更改“变量值”之前将其内容复制到记事本!!!)
在“Variable value
”字段中,将“c:\Program Files\Java\jdk-15.0.{x}\bin”(其中{x}是您的安装更新号)附加到所有现有目录前面,然后用分号(;)将jdk的bin目录与其他现有目录分开。不要删除任何现有条目;否则,某些现有应用程序可能无法运行。
Variable name : PATH
Variable value : c:\Program Files\Java\jdk-15.0.{x}\bin;[do not delete exiting entries...]
注意:如果已启动CMD,则需要重新启动新的环境设置才能生效。
步骤4:验证JDK安装
通过以下方式之一启动CMD:
1. 单击“搜索”按钮⇒键入“cmd”⇒选择“命令提示”,或
2. 右键单击“开始”按钮⇒运行。。。⇒输入“cmd”,或
3. 单击“开始”按钮⇒Windows系统⇒命令提示
发出以下命令以验证JDK安装:
1. (跳过,JDK15不需要)发出“path
”命令列出path环境变量的内容。检查以确保您的JDK的“bin”列在路径中。
path
PATH=c:\Program Files\Java\jdk-15.0.{x}\bin;other entries...
2. 发出以下命令以验证是否正确安装了JDK/JRE并显示其版本:
// Display the JDK version
javac -version
javac 15.0.1
// Display the JRE version
java -version
java version "15.0.1" 2020-10-20
Java(TM) SE Runtime Environment (build 15.0.1+9-18)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.1+9, mixed mode, sharing)
第5步:编写Hello World Java程序
1. 创建一个目录来保存您的作品,例如,“d:\myProject”或“c:\myProject”。不要将您的作品保存在“桌面”或“文档”中,因为它们很难找到。目录名不得包含空白或特殊字符。使用有意义但简短的名称,因为它更容易键入。
2. 启动编程文本编辑器(如TextPad、NotePad++、Sublime text、Atom)。从一个新文件开始,输入以下源代码。将文件另存为”Hello.java
“,在您的工作目录下(例如,d:\myProject)。
/*
* 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!");
}
}
步骤6:编译并运行Hello World Java程序
“编译源代码”程序过程”:
1. 启动命令Shell(搜索⇒输入“CMD”⇒选择“Command Prompt”)。
2. 将当前驱动器设置为保存源文件的驱动器“Hello.java
“.
如果使用驱动器“c”,请跳过此步骤。
否则,如果您使用驱动器“d”,请输入“d:”,如下所示:
d:
D:\xxx>
3. 将当前工作目录设置为通过cd
(更改目录)命令保存源文件的目录。例如,假设源文件保存在目录“myProject”中。
cd \myProject
D:\myProject>
4. 发出dir
(List Directory)命令以确认源文件存在于当前目录中。
dir
......
xx-xxx-xx xx:xx PM 277 Hello.java
......
5. 调用JDK编译器“javac
”来编译源代码Hello.java
.
javac Hello.java
// If error message appears, correct your source code and re-compile
如果命令提示符返回,则编译成功。否则,将显示错误消息。更正源文件中的错误并重新编译。如果在编译程序时遇到问题,请检查“常见JDK安装错误”。
6. 编译的输出是一个名为”Hello.class
“. 再次发出dir
(List Directory)命令检查输出。
dir
......
xx-xxx-xx xx:xx PM 416 Hello.class
xx-xxx-xx xx:xx PM 277 Hello.java
......
要运行程序,请调用Java运行时“java
”:
java Hello
Hello, world!
步骤7:(仅限高级用户)JDK的源代码
JDK的源代码被提供并保存在“<JAVA_HOME>\lib
”中\src.zip文件“(或“<JAVA\_HOME>\src.zip
文件“JDK 9之前)。我强烈建议您浏览一些源文件,例如“String.java
“, “Math.java
,和Integer.java
,在“java\lang”下,学习专家如何编程。
如何在macOS上安装JDK
步骤1:检查是否预装了JDK
要检查是否已安装JDK,请打开“终端”(搜索“终端”;或Finder⇒Go⇒Utilities⇒Terminal)并发出以下命令:
javac -version
- 如果返回了JDK版本号(例如JDK x.x.x),那么JDK已经安装。如果JDK版本早于1.8,请转至步骤2以安装最新的JDK;否则,请转至“步骤3:编写Hello world Java程序”。
- 如果出现消息“
command not found
”,则表示未安装JDK。继续“步骤2:安装JDK”。 - 如果出现消息“要打开javac,您需要一个Java运行时”,请选择“Install”并按照说明安装JDK。然后,继续“第3步:编写Hello world Java程序”。
步骤2:下载JDK
1. 转到Java SE下载站点@http://www.oracle.com/technetwork/java/javase/downloads/index.html。
2. 在“Java SE下载,Java平台,标准版”下⇒“Java SE 15”⇒单击“Oracle JDK”“下载”链接。
3. 为您的操作平台(即macOS)选择JDK。下载macos dmg安装程序(例如jdk-15.0.{x}\uosx-x64_bin.dmg文件-大约172MB,其中{x}是一个快速变化的更新号)。
步骤3:安装JDK/JRE
1. 双击下载的磁盘映像(DMG)文件。按照屏幕说明安装JDK/JRE。
2. 弹出DMG文件。
3. 要验证您的安装,请打开“终端”并发出以下命令。
// Display the JDK version
javac -version
javac 15.0.{x}
// Display the JRE version
java -version
java version "15.0.{x}"
......
// Display the location of Java Compiler
which javac
/usr/bin/javac
// Display the location of Java Runtime
which java
/usr/bin/java
第3步:编写Hello World Java程序
1. 在主目录下创建一个名为“myProject”的目录(启动“Finder”⇒“Go”⇒“home”;选择“File”⇒“New Folder”⇒“myProject”)。
在macOS中,当前用户的主目录可以引用为“~
”。因此,这个新目录可以被引用为“~/myProject
”。
2. 使用编程文本编辑器(如Sublime text或Atom)输入以下源代码并另存为Hello.java
在“~/myProject”目录下。
(如果使用macOS的默认文本编辑器“TextEdit”(不推荐),则需要打开新文件⇒选择“格式”⇒“生成纯文本”⇒输入源代码⇒“另存为”Hello.java
“.)
/*
* My First Java program to say Hello
*/
public class Hello { // Save as "Hello.java" under "~/myProject"
public static void main(String[] args) {
System.out.println("Hello, world from Mac!");
}
}
步骤4:编译并运行Hello World Java程序
1. “编译源代码”程序过程,打开一个新的“终端”(“Go”⇒“Utilities”⇒“Terminal”)并发出以下命令(如图所示):
// Change Directory (cd) to where "Hello.java" resides
cd ~/myProject
// Check if "Hello.java" exists using list (ls) command
ls
Hello.java ......
// Compile "Hello.java" using JDK compiler "javac"
javac Hello.java
// If error message appears, correct your source code and re-compile
// Check for the compiled output "Hello.class"
ls
Hello.class Hello.java ......
2. 要运行Hello world,请按如下方式调用Java运行时“java
”:
java Hello
Hello, world from Mac!
如何在Ubuntu上安装JDK
Linux有几种JDK实现,如oraclejdk、OpenJDK、sunjdk、ibmjdk和gnujava编译器。我们将选择oraclejdk8。Ubuntu选择OpenJDK作为默认JDK,它与oraclejdk不完全兼容。
步骤0:检查是否已安装JDK
打开终端并发出以下命令:
$ javac -version
如果出现JDK版本号(例如,“javac x.x.x”),则表明JDK已经安装。您可以跳过安装,转到步骤2。
要删除OpenJDK,请发出以下命令:
$ sudo apt-get purge openjdk-\*
步骤1:下载并安装JDK
1. 转到JDK(Java SE)下载站点@http://www.oracle.com/technetwork/java/javase/downloads/index.html。在“Java平台,标准版”下⇒“Java SE 11.0.{x}”⇒单击JDK的“下载”⇒“Java SE开发工具包11.0.{x}”下⇒选中“接受许可协议”⇒选择“Linux”tar.gz包(例如,“jdk-15.0.{x}-linux-x64_bin.tar.gz文件“-171MB)。
默认情况下,tarball将在目录“~/Downloads”中下载。
2. 我们将在“/usr/local/java
”(或Ubuntu的默认JDK目录/usr/lib/jvm
;或/opt/java
)下安装JDK。首先,在“/usr/local
”下创建一个目录“java”。打开终端并发出以下命令:
$ cd /usr/local
$ sudo mkdir java
解压缩下载的包(检查下载的文件名!)
$ cd /usr/local/java
$ sudo tar xzvf ~/Downloads/jdk-15.0.{x}-linux-x64_bin.tar.gz
// x: extract, z: for unzipping gz, v: verbose, f: filename
JDK应在文件夹“/usr/local/java/JDK-15.0.{x}
”中提取,其中{x}
是更新号。
3. 通知Ubuntu使用这个JDK/JRE:
// Setup the location of java, javac and javaws
$ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk-15.0.{x}/bin/java" 1
// --install symlink name path priority
$ sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk-15.0.{x}/bin/javac" 1
$ sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk-15.0.{x}/bin/javaws" 1
// Use this Oracle JDK/JRE as the default
$ sudo update-alternatives --set java /usr/local/java/jdk-15.0.{x}/bin/java
// --set name path
$ sudo update-alternatives --set javac /usr/local/java/jdk-15.0.{x}/bin/javac
$ sudo update-alternatives --set javaws /usr/local/java/jdk-15.0.{x}/bin/javaws
上面的步骤在/usr/bin(路径中)设置symlinks java
、javac
、javaws
,链接到/etc/alternatives,然后链接到JDK bin目录。
“alternatives”系统旨在解决多个程序实现相同功能的情况(例如,不同版本的jdk)。它通过/etc/alternatives设置符号链接,以引用要使用的实际程序。
$ ls -ld /usr/bin/java*
lrwxrwxrwx 1 root root xx xxx xx xx:xx /usr/bin/java -> /etc/alternatives/java
lrwxrwxrwx 1 root root xx xxx xx xx:xx /usr/bin/javac -> /etc/alternatives/javac
lrwxrwxrwx 1 root root xx xxx xx xx:xx /usr/bin/javaws -> /etc/alternatives/javaws
$ ls -ld /etc/alternatives/java*
lrwxrwxrwx 1 root root xx xxx xx xx:xx /etc/alternatives/java -> /usr/local/java/jdk-15.0.{x}/bin/java
lrwxrwxrwx 1 root root xx xxx xx xx:xx /etc/alternatives/javac -> /usr/local/java/jdk-15.0.{x}/bin/javac
lrwxrwxrwx 1 root root xx xxx xx xx:xx /etc/alternatives/javaws -> /usr/local/java/jdk-15.0.{x}/bin/javaws
或者,您可以将JDK的bin和JRE的bin直接包含到路径中。
4. 要验证JDK安装,请发出以下命令:
// Show the Java Compiler (javac) version
$ javac -version
javac 11.0.{x}
// Show the Java Runtime (java) version
$ java -version
java version "11.0.{x}"
......
// Show the location of javac and java
$ which javac
/usr/bin/javac
$ which java
/usr/bin/java
[不要执行此步骤-由步骤3中的“备选方案”处理。在这里演示如何设置路径。]
通过编辑“/etc/profile”将JDK的二进制目录(“bin”)添加到“PATH”:
$ cd /etc
$ gksudo gedit profile // OR "sudo nano profile" to use the console-based nano editor
在“/etc/profile”文件末尾添加这些行,用实际数字替换“{x}
”:
export JAVA_HOME=/usr/local/java/jdk-15.0.{x}
export PATH=$JAVA_HOME/bin:$PATH
通过以下方式重新运行配置文件:
// Refresh
$ source /etc/profile
// Check the new settings for JAVA_HOME and PATH
$ echo $JAVA_HOME
/usr/local/java/jdk-15.0.{x}
$ echo $PATH
.....:/usr/local/java/jdk-15.0.{x}/bin
步骤2:编译并运行Hello world Java程序
1. 文件资源管理器⇒主页⇒创建一个名为“myProject”的新文件夹以保存我们的作品。
2. 打开“文本编辑器”(gedit)。输入以下源代码并另存为“程序过程在先前创建的“~/myProject”目录下。
public class Hello { // To save as "Hello.java" under "~/myProject"
public static void main(String[] args) {
System.out.println("Hello, world from Ubuntu!");
}
}
3. 要编译Hello world Java程序,请启动终端并发出以下命令:
// Change directory to where the source code resides
$ cd ~/myProject
// List the contents of current directory. Check for "Hello.java"
$ ls
...... Hello.java ......
// Compile "Hello.java" into "Hello.class"
$ javac Hello.java
// Check for "Hello.class"
$ ls
...... Hello.class ......
4. 运行Hello world Java程序:
// Run "Hello.class"
$ java Hello
Hello, world from Ubuntu!
如何设置jdk环境变量
许多Java应用程序(如Tomcat)都要求将环境变量JAVA_HOME设置为JDK安装目录。
参考这篇文章:https://javakk.com/1448.html
安装JDK时的常见错误
SYMPTOM: Cannot compile Java program from the CMD shell (e.g., "javac Hello.java" does not work!)
ERROR MESSAGE: 'javac' is not recognized as an internal or external command, operable program or batch file.
PROBABLE CAUSES: The PATH environment variable, which maintains a list of search paths for executable
programs (including "javac.exe"), does not include JDK's bin directory.
POSSIBLE SOLUTIONS:
1) Start a CMD shell (click "Start" button ⇒ "run..." ⇒ enter "cmd") and issue a path command:
prompt> path
PATH=.......
2) Check if it includes your JDK's "bin" directory. For example, suppose that your JDK is installed
in "c:\program files\java\jdk-15.0.1", then PATH should include "c:\program files\java\jdk-15.0.1\bin".
Otherwise, include JDK's bin directory in the PATH environment variable.
Read "Step 3 of How to install JDK".
SYMPTOM: Can compile but cannot run Java program from the CMD shell (e.g., "java Hello" does not work!)
ERROR MESSAGE (Post JDK 1.7): Error: Could not find or load main class Xxx
ERROR MESSAGE (Pre JDK 1.7): Exception in thread "main" java.lang.NoClassDefFoundError: Xxx
PROBABLE CAUSES:
1) The Java class (in this example, Hello.class) is NOT in the current directory.
2) The CLASSPATH environment variable is set, but does not include the current directory ".".
POSSIBLE SOLUTIONS:
1) Issue a "dir" command to list the contents of the current directory.
Check that it contains the Java class to be run (e.g., Hello.class).
You need to compile the source program (".java") to get the class file (".class").
2) If the Java class is present in the current directory, issue a "set classpath" command
to check its settings:
prompt> set classpath
CLASSPATH=.......
If you receive the message "Environment variable CLASSPATH not defined" and
your program is correct, I can't help you here.
Otherwise, if the CLASSPATH is defined, for beginner, I suggest that you remove
the CLASSPATH environment variable.
From "Control Panel"
⇒ System
⇒ (Vista only) Advanced system settings
⇒ Switch to "Advanced" tab
⇒ Environment Variables
⇒ System variables (and also User variables)
⇒ Select variable "CLASSPATH"
⇒ Delete (Delete from both the System variables and User variables)
3) (For Advanced Users Only) If CLASSPATH is not set, it is defaulted to the current directory.
However, if CLASSPATH is set, the current directory is NOT implicitly included.
You can include the current directory (denoted by a single dot ".") in front of the
existing class-paths.
Read "Java Applications and Environment Variable" for more discussion on CLASSPATH.
SYMPTOM: Can compile but cannot run the Hello-world program (e.g., "java Hello" does not work!)
ERROR MESSAGE (Post JDK 1.7): Error: Main method not found in class Hello.
POSSIBLE SOLUTIONS: Check whether there is a main() method in your program, and the signature of your main()
as shown in the error message.
(高级)外部JAR文件和本机库
注:本节适用于JDK 9之前的JDK。jdk9在包的顶部引入了一个称为“module
”的新级别,并为Java模块引入了“jmod
”文件。需要为JDK9修改本节。
外部Java包(如Servlet、MySQL Connector/J、JOGL、JUnit)通常以JAR文件(Java Archive—许多Java类的单个文件包)的形式分发,其中可能包含本机库(Windows中为“.lib”和“.dll”,Linux/macOS中为“.a”和“.so”)。
外部JAR文件(“.JAR”)
如果没有正确包含外部JAR文件:
- 在编译过程中,对于属于外部包的类,您将收到编译错误“找不到符号”。
- 在执行期间,您将得到一个运行时错误“找不到或无法加载主类”或“
NoClassDefFoundError
”。
要包含外部JAR文件,可以:
1. 将外部包的所有JAR文件复制到Java的扩展目录(不适用于jdk9)。
- 对于Windows,JDK扩展目录位于“
<JAVA_HOME>\jre\lib\ext
”(例如,“c:\Program Files\JAVA\jdk1.8.0\u xx\jre\lib\ext”)。 - 对于macOS,JDK扩展目录是“/Library/Java/Extensions”和“/System/Library/Java/Extensions”。
- 对于Ubuntu,JDK扩展目录是“
<JAVA_HOME>/jre/lib/ext
”(例如“/usr/user/JAVA/jdk1.8.0\u xx/jre/lib/ext”)和“/usr/JAVA/packages/lib/ext”。
JDK扩展目录的位置保存在Java的系统属性中”java.ext.dirs
“. 您可以通过系统输出打印(System.getProperty("java.ext.dirs")
).
2. 还可以在CLASSPATH环境变量中包含所有JAR文件。类路径可以包含目录(Java类)或JAR文件(Java类的单文件存档)。如果设置类路径,还必须包括当前目录(表示为“.”)。
- 对于Windows,在控制面板中设置类路径⇒系统⇒高级系统设置⇒高级⇒环境变量⇒系统变量⇒新建⇒在“变量名称”中输入“类路径”⇒在“变量值”中输入“.”;路径1\xxx.jar文件;路径2\yyy.jar文件,其中条目用分号(;)分隔。
- 对于Linux和macOS:编辑~/.profile或~/.bash\u profile(或/etc/profile用于系统范围设置)以在文件末尾包含以下行:
export CLASSPATH=.:path1/xxx.jar:path2/yyy.jar
条目用冒号(:
)分隔。
您还可以通过选项-cp<paths>
(或-CLASSPATH<paths>
)在javac/java命令行中设置类路径,例如,
// For Windows
// 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
// For macOS and Ubuntu
// 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
外部本机库(“.lib”、“.dll”、“.a”、“.so”)
某些外部包可能以“.lib”(Windows的静态库)、“.dll”(Windows的动态链接库)、“.a”(Unix的静态(存档)库)或“.so”(Unix的共享对象库)的形式提供静态或共享本机库。
本机库将保存在可通过JRE属性访问的目录中。java.library.path
,通常但不一定包括PATH环境变量中的所有目录。
本机库不参与编译。但如果在运行时没有正确地包含它们,则会出现运行时错误“java.lang.UnsatisfiedLinkError: no xxx in java.library.path
“.
要包含外部本机库,请执行以下操作:
1. 将本机库复制到系统库目录中,例如c:\windows\system32(windows)、/usr/lib或/usr/local/lib(macOS/Unix)。您可以验证该目录是否包含在Java的系统属性中”java.library.path
“,通过系统输出打印(System.getProperty("java.library.path")
).
2. 您还可以通过java的命令行选项设置本机库路径-Djava.library.path=xxx
,例如,
// Run a Java program
java -Djava.library.path=xxx ClassName