基本上让我先解释一下我的目标是什么。我有一个用 JAVA 编写的动态 ETL 转换器应用程序。由于此应用程序的动态特性,我必须能够在应用程序 jar 文件之外的位置向应用程序添加插件 jar。 基本上想要具有以下目录结构:
应用文件夹
|- 插件/
|- 配置/
|- mainApp.jar
如果可能,我希望能够在我的 list 中使用通配符来动态添加位于插件文件夹中的 jars。 不幸的是,到目前为止我所尝试的一切都失败了。我尝试同时使用相对路径和绝对路径,但都没有用(有或没有通配符)。 但是,如果我在主应用程序的 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
不幸的是,他们都没有做到这一点,所以非常感谢任何帮助......
最佳答案
是的,你可以在 jar 之外有依赖项。但是指定依赖的 jar 不支持通配符。
jar 需要在 list 中明确指定,并且位置需要与应用程序运行的位置相关
一个更好的选择可能是使用 Extension Mechanism
java -Djava.ext.dirs=/abolute/path/to/plugins/ ......
关于java - 在包含 list 的 jar 文件之外包含 jar 文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2976281/