- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我像这样在命令行上运行第 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/
首先我觉得奇怪的是 OpenJDK project page 上没有错误跟踪器的链接。 ,然后我找到了bugs.openjdk.java.net ,但仅适用于经过认证的项目成员。象牙塔之外的人如何贡献
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 去年关闭。 Improve this questio
openjdk-7-jre-headless 和 openjdk-7-jre 有什么区别。 当我在 Ubuntu 的终端中输入 java 时,它提示 openjdk-7-jre-headless 而不
我无法理解 Java JRE 的一些基础知识。 我需要在嵌入式系统中运行 Java 代码,为此我需要在 Linux 内核中安装一个最小的 Java 运行时环境,也就是说,执行 Java 二进制文件所需
我正在使用 Redhat 6,我正在使用 java 1.6,因为我需要使用 java 1.6。我使用更新我的红帽yum update 和 openjdk 1.8 已自动安装。我尝试使用 删除 open
我在 Windows 上开发,在 Linux 上部署。我找不到windows和linux版本相同的OpenJdk。因此,我为 Windows 安装了 openjdk_1.7.0_u80-unoffic
Wildfly 13 和 Wildfly 14 支持哪些 OpenJDK 版本?有人可以向我提供支持矩阵吗? 最佳答案 我使用 WildFly 14 和 Open JDK 11 - 到目前为止没有任何
需要使用需要openjdk7的程序。运行 Debian 9 Mate。 当我尝试安装时获取以下内容 $sudo apt-get install openjdk-7-jre openjdk-7-jre-
我正在使用带有 heroku 插件的 IntelliJ 14,并且成功连接到 heroku。但是我无法对 heroku 进行更改。 我的应用程序使用 grails 2.5 和 Java 8。 似乎 h
在最近的许多情况下,但现在我尝试使用安装程序,它会抛出错误并显示“Java 未安装”之类的内容,即使 JAVA_HOME 设置为 Windows 10 64x 的 AdoptOpenJDK 安装程序安
我使用存储库 ppa:openjdk-r/ppa 在 ubuntu 14.04 LTS 上安装 openjdk-8-jre-headless。从今天早上开始一切正常,但现在安装因错误消息而中断 ope
这个问题在这里已经有了答案: Difference between openjdk-6-jre, openjdk-6-jre-headless, openjdk-6-jre-lib (2 个回答) 关
根据 https://github.com/docker-library/docs/blob/master/openjdk/README.md#make-jvm-respect-cpu-and-ram
我正在使用 IKVM 将 java 应用程序包装到 dll 中。我对 IKVM 不是特别熟悉,所以我提前为没有提供足够的信息表示歉意。无论如何,我正在使用一个 C# 库来调用 IKVM 创建的 dll
当我安装 netbeans 时,它让我可以选择 java 环境,我有 3 个选项,oracle java 和这两个(java-1.7.0-openjdk-i386 和 java-7-openjdk-i
使用brew和/或brew cask安装java 8和sbt显然是可能的,我遇到的问题是,brew 将 java 13 安装为 sbt 依赖项, 而且我不知道返回到默认 java 8 的一般方法,因为
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我已经在 Ubuntu 机器上运行这个旧的 Caucho Resin (4.0.41) 很多年了。我需要停用该服务器,因此我尝试在新的 Ubuntu 18.04.4 服务器上设置树脂 4.0.64,经
我刚刚开始使用 Playframework (Java) 开发一个应用程序,我认为使用支持 Playframework 的 Heroku 测试它是个好主意。 在 Heroku 上 Playframew
我尝试安装支持 Java 11 的最新稳定 Jenkins 版本。因此,在安装 Java 11(JDK) 后,我收到 Jenkins 的错误,指出发现了不正确的 java 版本。 因此卸载了 Java
我是一名优秀的程序员,十分优秀!