草庐IT

uber-jar

全部标签

java - jar hell : how to use a classloader to replace one jar library version with another at runtime

我对Java还是比较陌生,所以请多多包涵。我的问题是我的Java应用程序依赖于两个库。我们称它们为库1和库2。这两个库都对库3具有相互依赖关系。但是:库1需要库3的版本1。库2需要库3的版本2。这正是JARhell的定义(或至少一个它的变体)。如链接中所述,我无法在同一个类加载器中加载第三个库的两个版本。因此,我一直试图弄清楚是否可以在应用程序中创建一个新的类加载器来解决这个问题。我一直在研究URLClassLoader,但我一直无法弄清楚。这是一个演示该问题的示例应用程序结构。应用程序的Main类(Main.java)尝试实例化Library1和Library2并运行在这些库中定义的

java - jar hell : how to use a classloader to replace one jar library version with another at runtime

我对Java还是比较陌生,所以请多多包涵。我的问题是我的Java应用程序依赖于两个库。我们称它们为库1和库2。这两个库都对库3具有相互依赖关系。但是:库1需要库3的版本1。库2需要库3的版本2。这正是JARhell的定义(或至少一个它的变体)。如链接中所述,我无法在同一个类加载器中加载第三个库的两个版本。因此,我一直试图弄清楚是否可以在应用程序中创建一个新的类加载器来解决这个问题。我一直在研究URLClassLoader,但我一直无法弄清楚。这是一个演示该问题的示例应用程序结构。应用程序的Main类(Main.java)尝试实例化Library1和Library2并运行在这些库中定义的

java - 从现有 jar 创建 maven 工件的最佳方法

我正在做一些项目。这些项目都依赖于许多库,其中大部分都可以在mavenrepo中找到。对于其他库,我想创建一个Maven工件,所以我可以将它用作依赖项。问题是,我只有这些库的jar文件。从现有jar文件创建工件的最佳方法是什么? 最佳答案 如果您不使用remote存储库(这是个人开发的常见情况),只需install这些工件在您的本地存储库中使用install:install-file魔力:mvninstall:install-file-Dfile=-DgroupId=-DartifactId=-Dversion=-Dpackagin

java - 从现有 jar 创建 maven 工件的最佳方法

我正在做一些项目。这些项目都依赖于许多库,其中大部分都可以在mavenrepo中找到。对于其他库,我想创建一个Maven工件,所以我可以将它用作依赖项。问题是,我只有这些库的jar文件。从现有jar文件创建工件的最佳方法是什么? 最佳答案 如果您不使用remote存储库(这是个人开发的常见情况),只需install这些工件在您的本地存储库中使用install:install-file魔力:mvninstall:install-file-Dfile=-DgroupId=-DartifactId=-Dversion=-Dpackagin

java - 执行 jnlp 文件期间出现 SecurityException(主 jar 中缺少必需的权限 list 属性)

操作系统:Windows764位Java:jdk1.7.0_51我有一个jnlp文件。当我双击它时,出现如下异常:ApplicationError:UnabletolaunchtheapplicationException:java.lang.SecurityException:MissingrequiredPermissionsmanifestattributeinmainjar 最佳答案 用于安全的JAR文件list属性TheJARfilemanifest包含有关JAR文件内容的信息,包括安全和配置信息。在签署JAR文件之前将属

java - 执行 jnlp 文件期间出现 SecurityException(主 jar 中缺少必需的权限 list 属性)

操作系统:Windows764位Java:jdk1.7.0_51我有一个jnlp文件。当我双击它时,出现如下异常:ApplicationError:UnabletolaunchtheapplicationException:java.lang.SecurityException:MissingrequiredPermissionsmanifestattributeinmainjar 最佳答案 用于安全的JAR文件list属性TheJARfilemanifest包含有关JAR文件内容的信息,包括安全和配置信息。在签署JAR文件之前将属

java - 将第 3 方 jar 包含在 Maven 阴影 jar 中而不将其添加到本地存储库

我已经在StackOverflow上找到了如何在项目中包含第3方JAR而不将其安装到“本地存储库”的答案:CanIaddjarstomaven2buildclasspathwithoutinstallingthem?但是,当我使用MavenShade插件创建一个包含项目所有依赖项的JAR时,不会自动包含第3方JAR。如何让MavenShade插件将这样的第3方JAR添加到阴影JAR中?根据得到的答案,我成功了。我所做的是,将此片段添加到我的pom.xml的开头:repofile://${basedir}/repo然后为我的项目添加了一个依赖项,也添加到pom.xml:dummydumm

java - 将第 3 方 jar 包含在 Maven 阴影 jar 中而不将其添加到本地存储库

我已经在StackOverflow上找到了如何在项目中包含第3方JAR而不将其安装到“本地存储库”的答案:CanIaddjarstomaven2buildclasspathwithoutinstallingthem?但是,当我使用MavenShade插件创建一个包含项目所有依赖项的JAR时,不会自动包含第3方JAR。如何让MavenShade插件将这样的第3方JAR添加到阴影JAR中?根据得到的答案,我成功了。我所做的是,将此片段添加到我的pom.xml的开头:repofile://${basedir}/repo然后为我的项目添加了一个依赖项,也添加到pom.xml:dummydumm

从 jar 中删除文件的 ant 任务

如何编写一个从以前编译的JAR中删除文件的ant任务?假设我的JAR中的文件是:aaa/bbb/ccc/Class1aaa/bbb/ccc/Class2aaa/bbb/def/Class3aaa/bbb/def/Class4...我想要一个没有aaa.bbb.def包的JAR文件版本,我需要使用ant将其剥离,这样我最终得到一个JAR包含:aaa/bbb/ccc/Class1aaa/bbb/ccc/Class2谢谢! 最佳答案 您是否尝试过使用zipfileset任务?例如:RemovingsuperfluousfilesfromJ

从 jar 中删除文件的 ant 任务

如何编写一个从以前编译的JAR中删除文件的ant任务?假设我的JAR中的文件是:aaa/bbb/ccc/Class1aaa/bbb/ccc/Class2aaa/bbb/def/Class3aaa/bbb/def/Class4...我想要一个没有aaa.bbb.def包的JAR文件版本,我需要使用ant将其剥离,这样我最终得到一个JAR包含:aaa/bbb/ccc/Class1aaa/bbb/ccc/Class2谢谢! 最佳答案 您是否尝试过使用zipfileset任务?例如:RemovingsuperfluousfilesfromJ