gpt4 book ai didi

java - 控制 CLASSPATH 中 Java 类的加载

转载 作者:行者123 更新时间:2023-11-29 05:37:33 25 4
gpt4 key购买 nike

我正在尝试使用类路径方法应用补丁,我的意思是我将修改后的类文件添加为 jar 文件,并且在加载类时加载新版本的类。因此,在不更改原始 jar 文件的情况下对应用程序进行了修补。

下面的类路径定义工作正常;

java -cp patch/patch.jar;bin/  com.test.PatchClasspath

但是当 lib 类的顺序改变时它不起作用。(像往常一样)

java -cp bin/;patch/patch.jar  com.test.PatchClasspath

我想知道有没有一个JVM参数指示lib加载顺序?

编辑:我正在修改 Util->print() 方法以验证是否应用了补丁。

package com.test;

public class PatchClasspath {

public static void main(String[] args) {
Util util = new Util();
util.print();
}

}


package com.test;

public class Util {


public void print(){
System.out.println("Version-1");
}

}

谢谢。

最佳答案

没有这样的参数指示 JVM 中的 lib 加载顺序(我相信),但是,java -classpath 选项本身将根据您放置的路径确定类加载顺序。

JDK 文档对此进行了解释: http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/classpath.html

规范顺序

指定多个类路径条目的顺序很重要。 Java 解释器将按照它们在类路径变量中出现的顺序在目录中查找类。在上面的示例中,Java 解释器首先会在目录 C:\java\MyClasses 中查找需要的类。只有在该目录中找不到具有正确名称的类时,解释器才会在 C:\java\OtherClasses 目录中查找。

关于java - 控制 CLASSPATH 中 Java 类的加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18922463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com