Java/OpenJDK : How to add JAR to classpath

标签 java linux

我像这样在命令行上运行第 3 方 jar 文件(无 UI):

 /usr/bin/java -jar exchange-sync.jar

在我的发行版 (Debian Buster) 升级到最新的 OpenJDK 11 后,此命令不再有效。这就是我现在得到的:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/ws/http/HTTPException
        at microsoft.exchange.webservices.data.core.ExchangeService.findItems(ExchangeService.java:976)
        at microsoft.exchange.webservices.data.core.ExchangeService.findAppointments(ExchangeService.java:1264)
        at microsoft.exchange.webservices.data.core.ExchangeService.findAppointments(ExchangeService.java:1285)
        at com.zerodes.exchangesync.exchange.ExchangeSourceImpl.getAllAppointments(ExchangeSourceImpl.java:399)
        at com.zerodes.exchangesync.sync.SyncCalendarsImpl.generatePairs(SyncCalendarsImpl.java:45)
        at com.zerodes.exchangesync.sync.SyncCalendarsImpl.syncAll(SyncCalendarsImpl.java:98)
        at com.zerodes.exchangesync.App.main(App.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.ws.http.HTTPException
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)

我已经知道我现在需要安装 jaxws-api Debian 包,它在 /usr/share/java/jaxws-api.jar 中提供了缺少的类

为了从已安装的 jar 文件中包含类,我需要哪个 java 命令行?我已经试过了,但我得到了同样的错误:

/usr/bin/java -cp /usr/share/java/jaxws-api.jar -jar exchange-sync.jar

顺便说一句:我是一个 Java 菜鸟,我不想搞乱重新编译的事情。我也确信 javax.xml.ws.http.HTTPException 驻留在 jaxws-api.jar 中,因为我用 vim 浏览了那个 JAR 文件并在

最佳答案

好吧,我终于自己弄明白了。这是正确添加 JAR 期望存在的模块的方式:

/usr/bin/java --module-path /usr/share/java/jaxws-api.jar --add-modules jaxws.api -jar exchange-sync.jar

所以它实际上与类路径没有任何关系,它只是关于添加模块。

关于Java/OpenJDK : How to add JAR to classpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53478428/

相关文章:

linux - PeopleSoft 应用程序引擎的 EXEC pplcd 问题

java - MBean 上未找到任何操作

java - 将数据从 MySql 导入 HDFS 的最佳方式

Java正则表达式查找分割的url路径中的所有单词

java - 防止传递 JPA 存储库方法时 session 失败

java - 从 Spring 服务层读取 Wicket 属性

剩余大量内存时出现 java.lang.OutOfMemoryError (94GB/200GB Xmx)

linux - 使用 'sed' shell 命令部分替换字符串

linux - 有没有办法从 make 调用中获取 -j 参数?

linux - passwd 命令提示用户不存在