如何使用maven将rt.jar嵌入到我的WAR中

如何使用maven将rt.jar嵌入到我的WAR中,maven,jar,java,Maven,Jar,Java,如何使用Maven将JRE库(比如rt.jar)嵌入到WAR中 是否有maven插件/命令可以这样做?我认为这不是一个好主意。rt.jar是JRE的一部分,最好分开保存。我认为这不是一个好主意。rt.jar是JRE的一部分,最好分开保存。如前所述,提供自己的JRE jar不是一个好主意 为了防止您需要包含maven存储库中找不到的其他jar,您可以按照以下步骤添加下载的jar: 将rt.jar放在maven本地存储库中,例如 mvn安装:安装文件-Dfile=myjar.jar-DgroupId

如何使用Maven将JRE库(比如rt.jar)嵌入到WAR中


是否有maven插件/命令可以这样做?

我认为这不是一个好主意。rt.jar是JRE的一部分,最好分开保存。

我认为这不是一个好主意。rt.jar是JRE的一部分,最好分开保存。

如前所述,提供自己的JRE jar不是一个好主意

为了防止您需要包含maven存储库中找不到的其他jar,您可以按照以下步骤添加下载的jar:

将rt.jar放在maven本地存储库中,例如

mvn安装:安装文件-Dfile=myjar.jar-DgroupId=some.group-DartifactId=someartifact-Dversion=1.0-dpackage=jar

将此rt.jar的依赖项放在pom.xml上

一些 某种人造物 1 运行时

在构建工件时,someartifact.jar将包含在其中

正如已经指出的,提供自己的JRE JAR不是一个好主意

为了防止您需要包含maven存储库中找不到的其他jar,您可以按照以下步骤添加下载的jar:

将rt.jar放在maven本地存储库中,例如

mvn安装:安装文件-Dfile=myjar.jar-DgroupId=some.group-DartifactId=someartifact-Dversion=1.0-dpackage=jar

将此rt.jar的依赖项放在pom.xml上

一些 某种人造物 1 运行时

在构建工件时,someartifact.jar将包含在其中

将rt.jar文件放入WAR文件不会导致Java使用它。web容器的类加载器应该在查看webapp中的jar之前始终尝试系统类加载器,并且系统类加载器将在引导类路径上使用rt.jar;i、 e.JRE安装目录中的一个

这也一样。如果Java运行时使用您的rt.jar,它可能会陷入一片混乱。rt.jar中的代码可以尝试调用Java可执行文件中未实现的本机方法,也可以调用行为和/或签名已以不兼容方式更改的内部方法

如果您计划这样做以修复类库中的某些行为,我的建议是:

不要这样做。。。找出一个解决办法。 如果必须这样做,那么可以通过查看OpenJDK源代码、修补bug、构建新的JDK/JRE并将其用作JRE来完成。 将rt.jar文件放入WAR文件不会导致Java使用它。web容器的类加载器应该在查看webapp中的jar之前始终尝试系统类加载器,并且系统类加载器将在引导类路径上使用rt.jar;i、 e.JRE安装目录中的一个

这也一样。如果Java运行时使用您的rt.jar,它可能会陷入一片混乱。rt.jar中的代码可以尝试调用Java可执行文件中未实现的本机方法,也可以调用行为和/或签名已以不兼容方式更改的内部方法

如果您计划这样做以修复类库中的某些行为,我的建议是:

不要这样做。。。找出一个解决办法。 如果必须这样做,那么可以通过查看OpenJDK源代码、修补bug、构建新的JDK/JRE并将其用作JRE来完成。
+1:Thre rt.jar需要与您正在使用的JRE版本/更新相同。这是因为这个jar将使用JVM版本/更新特定的特性。尝试发布一个不同的版本只会让您感到悲伤。+1:Thre rt.jar需要与您使用的JRE版本/更新相同。这是因为这个jar将使用JVM版本/更新特定的特性。尝试发布一个不同的版本只会让你悲伤。但不要这样做。。。请看@adarshr的答案。@StephenC是的,我知道,每次您在项目中包含rt.jar时。。。但不要这样做。。。请看@adarshr的答案。@StephenC是的,我知道,每次您在项目中包含rt.jar时。。。我完全理解并理解rt.jar是JRE提供的,不应该捆绑在一起。我在一个完全不同的环境中尝试了这一点,现在我只想让大家都接受这一点:我完全理解并欣赏rt.jar是JRE提供的,不应该捆绑在一起。我是在一个完全不同的背景下尝试这一点的,现在我只想让你们都接受这一点: