相关疑难解决方法(0)

想法避免spring.handlers/spring.schemas在单个jar中合并多个spring依赖项时会被覆盖

我得到了错误Unable to locate NamespaceHandler when using context:annotation-config运行(java -jar)一个由maven-assembly-plugin组装并包含我的项目及其所有依赖项的jar.

正如其他人在forum.springsource.org 线程(消息#7/8)上正确发现的那样,问题出现是因为文件META-INF/spring.handlersMETA-INF/spring.schemas存在于不同的jar中,当maven-assembly-plugin在单个文件中重新打包jar时会被覆盖.

查看两个spring - *.jar文件的内容,您可以看到文件位于相对于类路径的相同位置

$ jar tf spring-oxm-3.0.3.RELEASE.jar
META-INF/spring.handlers
META-INF/spring.schemas
org/springframework/oxm/GenericMarshaller.class
...

$ jar tf spring-context-3.0.3.RELEASE.jar
META-INF/spring.handlers
META-INF/spring.schemas
org/springframework/context/ApplicationContext.class
Run Code Online (Sandbox Code Playgroud)

是不是可以将META-INF文件夹放在特定的包中?如果是这样,我建议的想法(希望它是适用的)是将META-INF/spring.shemasMETA-INF/spring.handlers文件放在他们引用的包下面.

$ jar tf spring-oxm-3.0.3.RELEASE.jar
org/springframework/oxm/META-INF/spring.schemas
org/springframework/oxm/META-INF/spring.handlers
org/springframework/oxm/GenericMarshaller.class
...

$ jar tf spring-context-3.0.3.RELEASE.jar
org/springframework/context/META-INF/spring.handlers
org/springframework/context/META-INF/spring.schemas
org/springframework/context/ApplicationContext.class
Run Code Online (Sandbox Code Playgroud)

这样,在单个jar中合并时它们不会发生冲突.你怎么看待这件事?

spring meta-inf maven-assembly-plugin

35
推荐指数
1
解决办法
2万
查看次数

将外部库放到JAR中?

我在我的java项目中添加了一些外部库(在netbeans中).
是否可以将外部jar库放入java存档(而不是将它们放入单独的(例如)"lib"目录中)?

java

13
推荐指数
1
解决办法
2万
查看次数

将JavaFX应用程序与openjdk 11和运行时捆绑在一起

在阅读到可以长期支持OpenJDK 11之后,我决定创建一个小应用程序(使用Gradle)与JavaFX结合起来测试一些功能。经过一番努力,我设法创建了一个可以正常打开的Hello World .jar文件。

现在,我要进行下一步:运行.jar文件,而无需事先下载任何与Java相关的内容,因为由于必须正确设置PATH等,此刻安装OpenJDK很小。

关于将OpenJDK 11应用程序与Java 11 JRE捆绑在一起的搜索不会返回很多答案。我觉得这很奇怪,因为(据我了解)OpenJDK 11是第一个不附带JRE的产品。

所以我的问题是:如何结合运行时来交付Java 11应用程序?

java javafx javafx-11

5
推荐指数
1
解决办法
1525
查看次数

创建一个具有spring依赖关系的超级jar

我正在尝试创建一个应用程序überjar,但由于依赖于spring框架而遇到了问题.特别是,xml架构的命名空间是有问题的.你得到臭名昭着的NamespaceHandler问题:

Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/c]
Run Code Online (Sandbox Code Playgroud)

对于创建(简单)uber jar,使用ant创建一个bundle jar,但是如果你有spring依赖,那么这不起作用,因为spring jar有spring.handlers,spring.schemas和spring.tooling等文件.许多jar文件的META-INF目录.我认为,命名空间解析依赖于这些文件.

überjar似乎以某种方式包含所有必要的文件,但我猜测运行时只看到一个.

例如,我的超级罐的jar -tf显示(部分)

META-INF/spring.handlers
META-INF/spring.schemas
META-INF/spring.tooling
META-INF/license.txt
META-INF/notice.txt
META-INF/spring.factories
META-INF/spring.handlers
META-INF/spring.schemas
META-INF/spring.tooling
META-INF/license.txt
META-INF/notice.txt
META-INF/license.txt
META-INF/notice.txt
META-INF/spring.handlers
META-INF/spring.schemas
META-INF/spring.tooling
META-INF/license.txt
META-INF/notice.txt
META-INF/license.txt
Run Code Online (Sandbox Code Playgroud)

那么:问题..有没有办法创造一个有弹簧罐捆绑在里面的超级罐?我需要合并META-INF文件吗?任何人都有与蚂蚁构建文件合并的经验吗?

spring executable-jar

3
推荐指数
1
解决办法
1661
查看次数

如何使用特定的清单文件和所需的库提取在 Eclipse 中导出可运行的 jar?

我使用 Eclipse 中的 Export as Runnable Jar 选项导出了我的项目,它最初工作得很好。

但是,我现在有一个启动图像,我需要将它包含在 Runnable jar 的清单中,在导出为 Runnable Jar 时无法指定它。

因此,我尝试将导出为 Jar 并通过那里手动设置清单。它允许我设置清单,但出现了另一个问题。它不会让我像 Runnable Jar 导出允许我那样提取/打包所需的库。

如果有人能告诉我一种方法,我可以将项目导出为带有自定义清单的可运行 jar 并将所需的库提取到 jar 中,我将不胜感激。

java eclipse export jar

1
推荐指数
1
解决办法
3095
查看次数