在JBoss环境中将war文件添加到java.class.path

在JBoss环境中将war文件添加到java.class.path,java,jboss,classpath,Java,Jboss,Classpath,我正在使用一个库来扫描我的类路径,以便找到接口的实现(这可能看起来很奇怪,我知道有更好的方法,但我无法更改)。 当我在一个独立的应用程序中使用这个库时,它可以从 java.class.path 返回jar文件所在的类路径。现在我正试图在部署到JBoss7的web项目中使用这个库。在本例中询问类路径时,返回: java.class.path /Applications/jboss-as-7.1.1.Final/jboss-modules.jar 我真的不知道如何向java.class.path

我正在使用一个库来扫描我的类路径,以便找到接口的实现(这可能看起来很奇怪,我知道有更好的方法,但我无法更改)。 当我在一个独立的应用程序中使用这个库时,它可以从

java.class.path
返回jar文件所在的类路径。现在我正试图在部署到JBoss7的web项目中使用这个库。在本例中询问类路径时,返回:

java.class.path /Applications/jboss-as-7.1.1.Final/jboss-modules.jar
我真的不知道如何向java.class.path env变量添加内容。有没有办法给这个变量添加一些东西,或者更好地解决这个问题? 这个库中有一个add()函数,我可以在其中添加需要扫描的jar文件。因此,如果有人能告诉我如何获得这个war文件的位置,那也会有帮助;)

这就是我所说的图书馆:

注意:java.class.path在这个库中使用,我真的不想对这个库做任何更改


提前感谢。

如果不能够控制类加载器,就无法进行类路径扫描。实现这一目标的更好选择是:

  • 使用和
    META-INF/services
  • 使用CDI并将实现注册为CDIBean

您是否在run.sh或run.bat中查找JBoss服务器?它是否在该文件中设置了类路径变量?谢谢,您没有解决我的问题,但您修复了我的设置。我所做的是实现类似ServiceLoader的东西。我不知道ServiceLoader是什么,我从没听说过。我已经研究过它,它正是我所需要的,并且嵌入到java中。现在我可以使用serviceloader找到实现(我可以在de META-INF/service中指定),并创建接口的实例。