java classpath设置_Java CLASSPATH设置
Java CLASSPATH设置
CLASSPATH: CLASSPATH是一个环境变量,Application ClassLoader使用它来定位和加载.class文件。 CLASSPATH定义路径,以查找不是扩展或Java平台一部分的第三方和用户定义的类。设置CLASSPATH时,请包括所有包含.class文件和JAR文件的目录。
如果满足以下条件,则需要设置CLASSPATH:
您需要加载当前目录或任何子目录中不存在的类。
您需要加载不在扩展机制指定位置的类。
CLASSPATH取决于您所设置的CLASSPATH。 CLASSPATH在末尾具有目录名或文件名。以下几点描述了CLASSPATH的结尾。
如果是JAR或zip,则该文件包含类文件,CLASSPATH以zip或JAR文件的名称结尾。
如果将类文件放在未命名的程序包中,则CLASSPATH以包含类文件的目录结尾。
如果将类文件放在命名包中,则CLASSPATH的目录以完整包名包含根包,该根包是完整包名中的第一个包。
CLASSPATH的默认值为点(.)。这意味着仅搜索当前目录。设置CLASSPATH变量或使用-classpath命令(简称-cp)时,CLASSPATH的默认值将被覆盖。如果要在搜索路径中包含当前目录,请在新设置中添加点(.)。
如果CLASSPATH找到了当前目录中存在的类文件,则它将加载该类
如果要设置多个类路径,则需要用分号(;)分隔每个CLASSPATH,并使用它,而不管同一个目录中是否存在相同的名称类。
使用JVM的第三方应用程序(MySQL和Oracle)可以修改CLASSPATH环境变量以包括它们使用的库。这些类可以存储在目录或归档文件中。 Java平台的类存储在rt.jar中。
设置CLASSPATH的方法有两种: 通过命令提示符或通过设置环境变量。
让我们看看如何设置MySQL数据库的CLASSPATH:
步骤1:单击Windows按钮并选择"控制面板"。选择系统。
步骤2:单击
高级系统设置。
第3步:。将打开一个对话框。单击环境变量。
步骤4:如果CLASSPATH已存在于系统变量中,请单击"编辑"按钮,然后在末尾添加分号(;)。粘贴MySQL-Connector Java.jar文件的路径。
如果系统变量中不存在CLASSPATH,请单击"新建"按钮,然后将变量名输入CLASSPATH,将变量值输入到
C。 : \ Program Files \ Java \ jre1.8 \ MySQL-Connector Java.jar;。;
记住: 放入;。;在CLASSPATH的末尾。
PATH和CLASSPATH之间的区别
PATH
CLASSPATH
PATH是一个环境变量。
CLASSPATH也是一个环境变量。
操作系统使用它来查找可执行文件(.exe)。
Application ClassLoader使用它定位.class文件。
您需要包括包含.exe文件的目录。
您需要包括所有包含.class和JAR文件的目录。
PATH环境变量一旦设置,就不能覆盖。
可以使用javac和java命令的命令行选项-cp或-CLASSPATH覆盖CLASSPATH环境变量。
如何在Windows中使用命令提示符设置CLASSPATH
在命令提示符中键入以下命令,然后按Enter。
set CLASSPATH=%CLASSPATH%;C:\Program Files\Java\jre1.8\rt.jar;
在上面的命令中,该集合是内部DOS命令,允许用户更改变量值。 CLASSPATH是变量名。用百分号(%)括起来的变量是现有的环境变量。分号是分隔符,在(;)之后是rt.jar文件的路径。
ext文件夹在Java中的工作方式
ext目录的工作原理类似于CLASSPATH。 ext目录是类加载机制的一部分。 ext目录的JAR中可用的类可用于Java应用程序。
下表说明了CLASSPATH和扩展机制之间的主要区别:
特征
CLASSPATH
扩展机制
类加载顺序
在加载引导程序和扩展名之后加载CLASSPATH。
ext会在引导加载后但CLASSPATH加载之前加载。
范围
这是特定于应用程序的。主机上的所有JRE都是CLASSPATH环境变量。
所有JVM都在特定的JRE java.ext.dirs中运行。
包裹名称
java.class.path用于查找包含类文件的目录和JAR归档文件。
java.ext.dirs用于指定扩展机制在何处加载类。
规格
由名称指定,包括extension.jar和包含.class文件的目录。
指定目录中的所有JAR文件都已加载。
该机制将从扩展目录中拾取所有.jar文件,即使该文件不具有.jar扩展名。这样做的实现是,如果可以更改放置在类路径目录中的jar的名称,使其具有.jar以外的扩展名。通配符(*)不起作用。此技术不适用于扩展目录。
让我们通过示例了解执行过程。
A.java
public class A
{
public String toString()
{
return "hello";
}
}
B.java
public class B
{
public static void main(final String[] args)
{
System.out.println(new A());
}
}
编译A.java文件。我们将已编译的A.class文件存档到A.jar中。将此JAR文件放置到已编译的B.class文件之外的另一个目录中。
为演示类路径的使用,我们将A.jar文件放置在目录C:\JavaPrograms中,并将通过以下方式访问该JAR: 通配符(*)供B使用。
我们发现,当我们从当前目录中删除A.class时,B仍然可以加载A.class。 Java启动器已明确寻找C: \ JavaProgram。也可以在不存在相同目录和明确的类路径规范的情况下加载该类。
使用扩展机制通常被称为好处,因为所有使用该JRE的应用程序都可以无需在类路径上显式指定它们即可看到相同的类。
如果在同一CLASSPATH引用的目录中将A.jar的名称更改为A.backup,会发生什么情况。当我们这样做时会遇到NoClassDefFoundError,因为CLASSPATH引用没有.jar扩展名。
java classpath设置_Java CLASSPATH设置相关推荐
- java excel打印_Java如何设置电子表格的打印区域?
在Java编程中,如何设置电子表格的打印区域? 注意:需要访问网址: , 下载一个Apache POI软件包.这里下载最新版本:poi-bin-3.17-20170915.tar.gz解压并将全部.j ...
- java 调内存_java内存设置
最近进入天猫物流做运营支撑,需要在不同系统之间切换来切换去.由于各个系统的规模不一,所以遇到了一下在eclipse里调整VM启动参数的问题,拿出来分享下. JVM启动以后,会分配两类内存区域,一类用于 ...
- java条码大小_java – 如何设置iText条码宽度?
我需要设置iText生成的条形码宽度.我正在使用此代码: Barcode128 code128 = new Barcode128(); code128.setCode("P662130002 ...
- java linux 时区_java同步/设置Linux系统时间
java设置/同步Linux系统时间 在网上看了很多,试了很多,不知道是他们的环境不同还是啥原因,很少成功 下面我就把我的测试成功的代码贴出来,让同行们少走弯路,如果实验不成功,可以给我留言 我帮助你 ...
- java swing背景_java swing 设置背景图片的方法一
下面是偶写着玩的下测试的代码:(不好之处,请多多指教,大家共同进步 ) import java.awt.*; import javax.swing.*; public class ImageDemo ...
- java改变字体_java字体设置
打开 fontconfig.properties 我们发现,对于英文,monospaced默认就是映射为Courier New字体,但为什么在Java程序里(比如Netbeans)确不能显示呢? 原因 ...
- java菜单栏尺寸设置_java – 如何设置JMenuItem的大小?
正如你所看到的,拥有这些JMenuItems很难看.菜单项的宽度非常小. 这是代码: JMenu menuOne=new JMenu("MenuOne"); JMenu menuT ...
- java xms xmx 设置_java 虚拟机设置 Xms Xmx PermSize MaxPermSize
Eclipse崩溃,错误提示: MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) s ...
- Java jpanel 设置_Java中设置Jpanel的背景
一起学习 1.创建一个类ImagePanel,代码如下 import java.awt.BorderLayout; import javax.swing.JPanel; import java.io. ...
最新文章
- TensorFlow之变量OP
- python好难找工作_Python 太难找工作了
- 无监督特定类别的网格重建(U-CMR) | ECCV
- 服务器重装ie浏览器,服务器内部IE浏览器或相关软件访问支付宝异常问题解决方案...
- FFmpeg--av_register_all函数分析
- Scala中的match(模式匹配)
- 一些常用的辅助代码 (网络收藏)
- matlab处理足球数据,如何用MATLAB画一个足球出来?
- SpringBean生命周期详解
- 有哪些管理类书籍值得推荐?
- FRM 风险管理基础:复习提纲二
- 2018第五届“云鼎奖”申报启动
- 阿里巴巴 Alibaba
- Hexagon GDB Debugger介绍(53)
- TEST EAX,EAX作用
- Linux设备上时间不准确?使用chrony服务配置时间服务器实现Linux时间同步以及实现主从设备时间同步
- P5017 NOIP2018 普及组 摆渡车
- 广东计算机复试英语翻译,广东考研指南:参加研究生复试,英语面试自我介绍技巧...
- Android应用商店大全
- MySQL经典四表查询(教师,学生,成绩,课程表)多表查询