包含清单的 jar 文件之外的 jar 文件的问题

发布于 2024-09-04 10:36:42 字数 827 浏览 5 评论 0原文

基本上让我首先解释一下我的目标是什么。我有一个用 JAVA 编写的动态 ETL 转换器应用程序。由于此应用程序的动态特性,我必须能够将插件 jar 添加到应用程序 jar 文件之外的位置。 基本上希望有以下目录结构:

AppFolder
|- 插件/
|- 配置/
|- mainApp.jar

如果可能的话,我希望能够在清单中使用通配符来动态添加位于插件文件夹中的 jar。 不幸的是,到目前为止我所做的一切尝试都失败了。我尝试使用相对路径和绝对路径都不起作用(带或不带通配符)。 然而,如果我将插件文件夹包含在主应用程序的 jar 文件本身中,鉴于我不使用通配符,它​​可以正常工作。

所以我的问题是,是否真的可以在 jar 之外拥有依赖项,或者它们总是必须包含在 jar 内。 另一个问题是关于通配符的使用。我查看了[java文档](http: //java.sun.com/javase/6/docs/technotes/tools/windows/classpath.html)不幸的是没有占上风。

到目前为止我尝试过的一些例子:

  • ../plugins/*
  • ../plugins/plugin.jar
  • /abolute/path/to/plugins/*
  • /abolute/path/to/plugins/plugin.jar

不幸的是没有他们已经成功了,所以我们将非常感谢任何帮助......

Basically let me first explain what I am aiming to do. I have a dynamic ETL transformer app written in JAVA. Due to the dynamic nature of this app I have to be able to add plugins jars to the app in a location outside of the apps jar file.
Basically would like to have the following directory structure:

AppFolder
|- plugins/
|- configs/
|- mainApp.jar

If possible I would like to be able to use wildcards in my manifest to dynamically add jars located in the plugins folder.
Unfortunately all I have tried so far has failed. I have tried to use both relative paths and absolute paths neither have worked (with or without wildcard).
If I however include the plugins folder in the main app's jar file itself it works fine given that I don't use wildcards.

So my question is, is it actually possible to have dependencies outside of a jar or do they always have to be contained within.
The other question is regarding the usage of wildcards. i have looked at [the java documentation] (http://java.sun.com/javase/6/docs/technotes/tools/windows/classpath.html) to no prevail unfortunately.

some examples of what I have tried so far:

  • ../plugins/*
  • ../plugins/plugin.jar
  • /abolute/path/to/plugins/*
  • /abolute/path/to/plugins/plugin.jar

and unfortunately none of them have done the trick so any help would be very much appreciated...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

可爱暴击 2024-09-11 10:36:42

是的,你可以在 jar 之外有依赖项。但指定依赖的 jar 不支持通配符。

这些 jar 需要在清单中明确指定,并且位置需要相对于应用程序的运行位置。

对您来说更好的选择可能是使用 扩展机制

java -Djava.ext.dirs=/abolute/path/to/plugins/ ......

Yes you can have dependencies outside the jar. But wildcards are not supported for specify dependant jars.

The jars need to be explicitly specified in your manifest, and the location needs to be relative to where the application is run from

A better option for you may be to use the Extension Mechanism

java -Djava.ext.dirs=/abolute/path/to/plugins/ ......
作业与我同在 2024-09-11 10:36:42

如果您可以控制代码,则可以随时添加 JarClassLoader 并动态加载 jar。
http://java.sun.com/docs/books/教程/部署/jar/jarclassloader.html

If you have control of the code you could always add a JarClassLoader and load the jars dynamically.
http://java.sun.com/docs/books/tutorial/deployment/jar/jarclassloader.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文