java bootclasspath_-xbootclasspath_sayyy的博客-程序员秘密

技术标签: 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

智能推荐

ASP.NET通过IIS发布后“无法创建ActiveX对象”问题的解决_axarfmwov446294387的博客-程序员秘密

ASP.NET写的网站,里面包含excel导入和导出的功能用到了excel com组件,服务器本机运行正常,用IIS发布后客户机访问时出现无法创建ActiveX对象的错误,原因是用户对com组件的权限不够,解决方法如下:1.为excel com组件添加everyone用户的权限,具体如下:控制面板->管理工具->组件服务->组件服务->计算机->我的...

批量上传Fiori程序到GitLab_jiarusong的博客-程序员秘密

好久没水文章了,水一水。说下背景,最近要把SAP服务器上面大量的Fiori源代码迁移到GitLab上做管理,首先要先把Fiori程序源代码从服务器下载到本地webide , 然后再上传到GitLab。以上步骤就是通过一系列的鼠标点击和按钮输入完成的。如果真的一个个程序弄,实在是过于乏味无趣。为了寻求快乐,写了一个爬虫工具来自动完成这些步骤。其实和其它的爬虫程序没有很多区别,如果大家感兴趣可以自行了解或者找我交流。使用工具:1、SAP personal WebIDE2、GitLab3、爬虫

如何向MongoDB数据库导入数据_mongodb怎么导入数据库_chnyi6_ya的博客-程序员秘密

本文介绍了如何向MongoDB数据库中导入数据,并且写了如果文件路径中有空格会报错,以及如何解决

jspSmartUpload示例_LYZ0907的博客-程序员秘密

一、上传页面——upload.html

物联网工程第一次作业_avx49405的博客-程序员秘密

我选择 Games(游戏)、Mobile Apps(手机应用)、Tools(工具软件)进行分析关于Games(游戏)1、根据大数据收集,绝大多数游戏的开发者通过信息交互、信息传播使陌生人成为他们的用户。游戏的目的据目前为止基本都是为了盈利。目的可能不都是赚取用户的现金,也有植入广告,倒卖信息,各种理由。2、游戏的来源大部分是好友介绍,软件商城,过去游戏引入等。3、游戏是存...

ubuntu 16.04 通过wifi共享网络_ubuntu ap wifi 共存_笔墨留年的博客-程序员秘密

创建时间:2017.03.15前言 有电脑给手机开热点的需求,但是换用了ubuntu系统后,很多东西不会弄,查阅了不少资料后,找到了一个切实可靠的方法。设置方法 打开桌面右上角网络管理器,选择编辑连接。 在弹出来的网络连接窗口中,点击增加。 在弹出来的选择连接类型的窗口中,选择Wi-Fi。 在弹出来的编辑页面中,选择Wi-Fi选项,在连接...

随便推点

小程序时间戳转换成时间显示_Rux子兮的博客-程序员秘密

1、在until.js添加代码module.exports = { formatTime: formatTime, timeFomat: timeFomat//添加时间戳转时间}//时间戳转换时间 function timeFomat(time) { if (time == null) { return '评估中...'; } var date = new...

Jsp提交表单使用加密、解密解决中文乱码问题_an1471595779的博客-程序员秘密

加密:下面是onclick事件:   function search(imgElement){      var trElement=imgElement.parentNode.parentNode.parentNode;      var key=$(trElement).children('td').eq(1).html();      var form = docum...

SAP Fiori 常用事务代码_/ui2/flp_u327812917的博客-程序员秘密

SEGW: 创建Gateway Service/UI2/FLP:进入Launchpad/UI2/FLPD_CUST:配置磁贴/UI2/SEMOBJ:维护语义对象/IWFND/MAINT_SERVICE:激活并维护服务/IWFND/ERROR_LOG: SAP Gateway 错误日志PFCG:将磁贴目录与组的权限分

layui列表筛选列_浅谈layui中的table字段筛选功能_猕猴桃学长的博客-程序员秘密

table模块在layui 2.0的版本中全新推出,是layui框架最核心的组成之一。本篇文章就来为大家介绍一下layui框架的table模块的字段筛选功能,希望对大家有一定的帮助。先看效果,使用过excel的应该很熟悉功能比较直白无需赘述,直接说实现思路还有需要解决的问题。测试页面: https://sun_zoro.gitee.io/layuitableplug/testTableCheckb...

C# DevExpress 进度条progressBarControl的使用_progressbarcontrol 显示当前值/最大值_simpleshao的博客-程序员秘密

原文:https://blog.csdn.net/yueliangge910101/article/details/81633782#region 进度条progressBarControl1.Visible = true;//设置一个最小值progressBarControl1.Properties.Minimum = 0;//设置一个最大值progressBarCo...

夜间模式的开启与关闭,父模板的制作_anying7798的博客-程序员秘密

夜间模式的开启与关闭放置点击的按钮或图片。定义开关切换函数。onclick函数调用。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>日夜模式测试</title> ...