java bootclasspath_xbootclasspath-程序员宅基地

技术标签: java  

前言

  • jdk1.8

查看 bootclasspath

创建项目BootstrapClassPath,代码如下:

import java.io.File;

public class Test {
    
	public static void main(String[] args) {
    
		printPath("sun.boot.class.path");
	}
	
	public static void printPath(String name) {
    
		System.out.println(name + ":");
		String[] paths = System.getProperty(name).split(File.pathSeparator);
		for(String path : paths) {
    
			System.out.println("- " + path);
		}
	}
}

执行结果:

sun.boot.class.path:
- C:\Program Files\Java\jdk1.8.0_144\jre\lib\resources.jar
- C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar
- C:\Program Files\Java\jdk1.8.0_144\jre\lib\sunrsasign.jar
- C:\Program Files\Java\jdk1.8.0_144\jre\lib\jsse.jar
- C:\Program Files\Java\jdk1.8.0_144\jre\lib\jce.jar
- C:\Program Files\Java\jdk1.8.0_144\jre\lib\charsets.jar
- C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfr.jar
- C:\Program Files\Java\jdk1.8.0_144\jre\classes

修改bootclasspath

  • -Xbootclasspath: 完全取代基本核心的Java class 搜索路径.不常用(慎用),否则要重新写所有Java 核心class
  • -Xbootclasspath/a: 后缀。在bootclasspath后面添加。常用!!
  • -Xbootclasspath/p: 前缀。在bootclasspath前面添加。不常用,避免引起不必要的冲突。

-Xbootclasspath/a 示例

cmd> java -Xbootclasspath/a:.\lib\xxx.jar;BootstrapClassPath.jar test.Test
sun.boot.class.path:
- C:\Program Files\Java\jre1.8.0_144\lib\resources.jar
- C:\Program Files\Java\jre1.8.0_144\lib\rt.jar
- C:\Program Files\Java\jre1.8.0_144\lib\sunrsasign.jar
- C:\Program Files\Java\jre1.8.0_144\lib\jsse.jar
- C:\Program Files\Java\jre1.8.0_144\lib\jce.jar
- C:\Program Files\Java\jre1.8.0_144\lib\charsets.jar
- C:\Program Files\Java\jre1.8.0_144\lib\jfr.jar
- C:\Program Files\Java\jre1.8.0_144\classes
- ./lib/xxx.jar
- BootstrapClassPath.jar
  • ./lib/xxx.jar;BootstrapClassPath.jar 被添加到了sun.boot.class.path后面
  • 前面的源码打包到了BootstrapClassPath.jar

-Xbootclasspath/p 示例

cmd> java -Xbootclasspath/p:.\lib\xxx.jar;BootstrapClassPath.jar test.Test
sun.boot.class.path:
- ./lib/xxx.jar
- BootstrapClassPath.jar
- C:\Program Files\Java\jre1.8.0_144\lib\resources.jar
- C:\Program Files\Java\jre1.8.0_144\lib\rt.jar
- C:\Program Files\Java\jre1.8.0_144\lib\sunrsasign.jar
- C:\Program Files\Java\jre1.8.0_144\lib\jsse.jar
- C:\Program Files\Java\jre1.8.0_144\lib\jce.jar
- C:\Program Files\Java\jre1.8.0_144\lib\charsets.jar
- C:\Program Files\Java\jre1.8.0_144\lib\jfr.jar
- C:\Program Files\Java\jre1.8.0_144\classes
  • ./lib/xxx.jar;BootstrapClassPath.jar 被添加到了sun.boot.class.path前面
  • 前面的源码打包到了BootstrapClassPath.jar

(可以)添加.class文件目录

cmd> java -Xbootclasspath/a:.\target\classes test.Test
sun.boot.class.path:
- C:\Program Files\Java\jre1.8.0_144\lib\resources.jar
- C:\Program Files\Java\jre1.8.0_144\lib\rt.jar
- C:\Program Files\Java\jre1.8.0_144\lib\sunrsasign.jar
- C:\Program Files\Java\jre1.8.0_144\lib\jsse.jar
- C:\Program Files\Java\jre1.8.0_144\lib\jce.jar
- C:\Program Files\Java\jre1.8.0_144\lib\charsets.jar
- C:\Program Files\Java\jre1.8.0_144\lib\jfr.jar
- C:\Program Files\Java\jre1.8.0_144\classes
- .\target\classes

(可以)添加.yml.xml.properties(或其它配置文件)文件目录

cmd> java -Xbootclasspath/a:.\target\conf test.Test
sun.boot.class.path:
- C:\Program Files\Java\jre1.8.0_144\lib\resources.jar
- C:\Program Files\Java\jre1.8.0_144\lib\rt.jar
- C:\Program Files\Java\jre1.8.0_144\lib\sunrsasign.jar
- C:\Program Files\Java\jre1.8.0_144\lib\jsse.jar
- C:\Program Files\Java\jre1.8.0_144\lib\jce.jar
- C:\Program Files\Java\jre1.8.0_144\lib\charsets.jar
- C:\Program Files\Java\jre1.8.0_144\lib\jfr.jar
- C:\Program Files\Java\jre1.8.0_144\classes
- .\target\conf

(可以)添加.jar文件

cmd> java -Xbootclasspath/a:.\target\BootstrapClassPath.jar test.Test
sun.boot.class.path:
- C:\Program Files\Java\jre1.8.0_144\lib\resources.jar
- C:\Program Files\Java\jre1.8.0_144\lib\rt.jar
- C:\Program Files\Java\jre1.8.0_144\lib\sunrsasign.jar
- C:\Program Files\Java\jre1.8.0_144\lib\jsse.jar
- C:\Program Files\Java\jre1.8.0_144\lib\jce.jar
- C:\Program Files\Java\jre1.8.0_144\lib\charsets.jar
- C:\Program Files\Java\jre1.8.0_144\lib\jfr.jar
- C:\Program Files\Java\jre1.8.0_144\classes
- .\target\BootstrapClassPath.jar

(不可以)添加.jar文件所在目录

cmd> java -Xbootclasspath/a:.\target test.Test
错误: 找不到或无法加载主类 test.Test

扩展知识

自JDK 1.2以后,JVM采用了委托(delegate)模式来载入class.
采用这种设计的原因可以参考: http://java.sun.com/docs/books/tutorial/ext/basics/load.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sayyy/article/details/122706344

智能推荐

TFS文件系统 安装_tfs 安装-程序员宅基地

文章浏览阅读507次。TFS(Taobao FileSystem)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,其设计目标是支持海量的非结构化数据的存储;TFS使用C++语言开发,需要运行在64bit Linux OS上,TFS为淘宝提供海量小文件存储,通常文件大小不超过1M,满足了淘宝对小文件存储的需求,被广泛地应用 在淘宝各项应用中。它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性。_tfs 安装

100G Python从入门到精通全套资料!完整免费送给大家!(0基础到就业)_100g python资源-程序员宅基地

文章浏览阅读854次,点赞3次,收藏2次。一、Python是什么?Python , 是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,Python 已经成为继Java,C++之后的的第三大语言。特点:简单易学、免费开源、高层语言、可移植性强、面向对象、可扩展性、可嵌入型、丰富的库、规范的代码等。 Python强大的生态圈注定它了应用广泛,国内的豆瓣、搜狐、金山、通讯、盛大、网易、百度、阿里、土豆、新浪等,国外:谷歌、NASA、YOUTU、FACEBOOK、红帽等企业都在广泛应用。 Python除了极少的事情不能做之外,其他基本上可以_100g python资源

flowable工作流 流程变量_工作流Activiti5流程变量 任务变量 setVariables 和 setVariablesLocal区别...-程序员宅基地

文章浏览阅读1.6k次。可以简单认为,variable都是针对processInstance的。local可能是针对某个execution分支的,也可能针对task的。这里就要谈一下变量的作用域,变量肯定是依附于某个流程里的概念而存在的,所以才能在流程流转过程中使用这些变量。默认的变量都是流程实例级别的,也就是说,分支execution和task都可以读取到对应processInstance里的变量。与之相对的就是loc..._setvariableslocal

计算机二本学都有哪些,计算机二本大学有哪些-程序员宅基地

文章浏览阅读622次。类似问题答案计算机软件设计专业好的二本大学有哪些?北京:北京服装学院、中央民族大学北京科技大学、北京印刷学院北方工业大学、北京建筑工程学院 天津:天津美术学院,天津工业大学、天津师范大学、天津科技大学、天津理工大学 河北:河北工业大学、燕山大学、河北理工大学、河北科技大学内蒙古:内蒙古师范大学,内蒙古农业大学 辽宁:鲁迅美术学院,沈阳理工大学、大连工业大学、沈阳建筑大学、辽宁师范大学,沈阳航空工业..._二本学cad设计的学校有哪些

Angular 基础教程(7.0)-程序员宅基地

文章浏览阅读7.1k次,点赞6次,收藏40次。课程亮点按照初学者的学习路线规划内容所有代码均采用 Angular 7.0 版本覆盖日常开发中使用频率最高的特性To B、To C 型界面,移动端 PWA 全面覆盖附赠 3 个附录,对比 5.0、6.0、7.0 版本读者反馈《Angular 初学者快速上手教程》课程发布已有一年,期间收到了很多读者的留言,这里摘录几条,仅供参考。为了不打搅这些朋友,部分采用了匿名。课程背景本..._angular教程

随便推点

如何给开发板设置静态IP_开发板配置多个静态ip-程序员宅基地

文章浏览阅读1.1k次,点赞3次,收藏9次。记录下使用开发板遇到的问题及解决方法_开发板配置多个静态ip

pandas读取文件时有多个不同的分隔符_pandas 分隔符-程序员宅基地

文章浏览阅读1.1w次,点赞12次,收藏34次。pandas读取文件时默认有一个分隔符,可是如果我的数据是这样的有多个分隔符如空格逗号分号等:此时使用:t1 = pd.read_table('test.txt', sep='\s|,|;', names=['c1', 'c2', 'c3', 'c4'])使用参数sep 或 delimiter分隔不同字符通过加上|如果有多个空格的话使用\s+使用参数names设置列名得到结果..._pandas 分隔符

mysql中,截取属型类型是DateTime的日期值示例_mysql group by datetime 截取-程序员宅基地

文章浏览阅读1.3k次。创建表teCREATE TABLE `te` ( `test_id` int(11) NOT NULL AUTO_INCREMENT, `test_time` datetime DEFAULT NULL, PRIMARY KEY (`test_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;向表中插入数据insert into te val..._mysql group by datetime 截取

微信小程序嵌入腾讯视频源-程序员宅基地

文章浏览阅读1w次,点赞4次,收藏25次。今天写小程序时候遇到个坑,就是使用vedio组件时候,一开始没想好,本以为腾讯视频会有类似于优酷之类的提供分享外链功能,结果进去一看,只能复制视频网址,本来想着要么F12获取地址吧,麻烦点就麻烦点,但是复制出来的视频地址里面有一个vkey,这个vkey是动态的,也就是会过期的,过期之后视频链接就无法播放了,这个就有点麻烦,而且也不能每次都去F12吧,毕竟这个视频地址是通过后台发布的,也就是用户去配..._微信小程序嵌入腾讯视频源

max模型怎么导入ue4_UE4模型导入流程,3DMAX贴图丢失问题解决方法-程序员宅基地

文章浏览阅读6.7k次。① 模型设置:1.将Vary材质转成标准材质:2.将模型减面3.加一套UV(虚幻里有两套UV,一套用来反射):Flatiron插件② 输出设置:1,先设置好3DMAX里单位,厘米,如图:alt+u+u打开单位设置2,在3DMAX里,先收集贴图到指定文件夹,最好不要有中文路径,如图:3,查看贴图路径,贴图格式,导出FBX时,要注意修改贴图格式,最好PNG或TGA图片格式,dds格式图片不能导入UE4..._3dmax 导入 ue缺失材质

java -jar 在后台运行和关闭_关闭后台运行的jar-程序员宅基地

文章浏览阅读3.9k次,点赞6次,收藏6次。一、执行程序切换后台执行java -jar xxx.jar & 或者nohup java -jar xxxx.jar &。nohup不挂断的运行,注意并没有后台运行的功能,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系。ctrl+z退出到控制台,执行 bg执行exit完成以上3步,退出SHELL后,jar服务一直在后台运行。二、结束进程通过执行ps auxwww | grep XXX.jar通过查找进程关键字 找到进程PID。执行kill -9 _关闭后台运行的jar

推荐文章

热门文章

相关标签