ゴードン・シャムウェイ:
私はこのようなコマンドライン上でサードパーティのjarファイル(UIなし)を実行しています:
/usr/bin/java -jar exchange-sync.jar
私のディストリビューション(Debianのバスター)は、最新の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
。
これはjavaコマンドライン私がインストールされたjarファイルからクラスを含めるために必要なのですか?私はすでにこれを試してみましたが、私は同じエラーを取得しています:
/usr/bin/java -cp /usr/share/java/jaxws-api.jar -jar exchange-sync.jar
ところで:私は、Javaのnoobと私は物事を再コンパイルを台無しにしたくありません。また、私は確認していますjavax.xml.ws.http.HTTPException
存在がでjaxws-api.jar
、私はvimのでそのJARファイルを閲覧したとして、それにそのクラスを発見しました。
ゴードン・シャムウェイ:
[OK]を、私は最終的に自分でこれを考え出しました。これは、JARが存在することを期待している、あなたは正しくモジュールを追加する方法です。
/usr/bin/java --module-path /usr/share/java/jaxws-api.jar --add-modules jaxws.api -jar exchange-sync.jar
それは本当にクラスパスとは何の関係もありませんので、それだけでモジュールを追加することについてです。