Java 在系统jar之前加载jar

Java 在系统jar之前加载jar,java,jar,Java,Jar,有没有办法在系统jar之前加载jar文件?我有一个比我被迫使用的java系统(1.5)中的类更新的类,但它会中断,因为java首先加载它自己的类(具体地说是从rt.jar)。有什么方法可以强制它在system/rt.jar之前加载我自己的jar吗?您可以尝试ext或认可的类路径。您想要的是(特定于JVM的)启动选项-Xbootclasspath:/p。这将在现有引导类路径之前,将提供的路径和归档列表置于前面,强制首先加载找到的任何类 java -Xbootclasspath/p:<path

有没有办法在系统jar之前加载jar文件?我有一个比我被迫使用的java系统(1.5)中的类更新的类,但它会中断,因为java首先加载它自己的类(具体地说是从rt.jar)。有什么方法可以强制它在system/rt.jar之前加载我自己的jar吗?

您可以尝试ext或认可的类路径。

您想要的是(特定于JVM的)启动选项
-Xbootclasspath:/p
。这将在现有引导类路径之前,将提供的路径和归档列表置于前面,强制首先加载找到的任何类

java -Xbootclasspath/p:<pathtooverridejarhere> mypackage.MyClass
java-Xbootclasspath/p:mypackage.MyClass
请注意:

  • 分发修改过的JDK类是违反Oracles TOS的
  • 由于以下原因,加载JDK类的较新版本仍然可能失败: 依赖解决问题

ext文件夹中的类不会在系统崩溃之前加载。这就是我写May的原因。只是出于好奇,你为什么要这么做?您是否试图重写系统类的行为?是否可以改为升级?根据您尝试执行的操作,您可能可以使用自定义类加载器以不同的顺序加载内容。我们希望运行jaxp,它需要1.6或更高版本,但也附带了一个jar,其中包含一些类的不同版本,并希望使用这些类,以便它工作。