Temurin-build: DLLがないということは、ユーザーがMicrosoft Visual C ++再頒布可能パッケージをダウンロードすることを余儀なくされていることを意味します

作成日 2019年01月29日  ·  13コメント  ·  ソース: adoptium/temurin-build

AdoptOpenJDKには、api-ms-win-core-console-l1-1-0.dllなどのDLLは含まれていません。

つまり、AdoptOpenJDKで実行されているJavaFXアプリは、ユーザーがシステムにMicrosoft Visual C ++再頒布可能パッケージもインストールしない限り実行に失敗します。

これらのエラーの例は、ここに記載されています: https

bug windows

最も参考になるコメント

これに関する簡単な更新。

  1. JDK11u64ビットビルドがVS2017に切り替えられました。
  2. JDK11u32ビットビルドはVS2013上にあります。 JDK11u 32ビットをVS2017でコンパイルできるようにする修正は、11.0.4アップデートで開始され、それと並行してVS2017に切り替えます。
  3. JDK8u 32ビットおよび64ビットビルドがVS2013に切り替えられました(以前はVS2010 / VS2013が混在していました)。 VS2017でもビルドできるように取り組んでいますが、アップストリームに送信するための修正を取得するには、もう少し時間がかかるようです。

全てのコメント13件

@ johanvos-これは、ディストリビューションに期待されるものですか、それともJavaFXパッケージの一部ですか?

これはOpenJDKディストリビューションの一部なので、一貫性の理由から、AdoptOpenJDKディストリビューションの一部でもあるべきだと思いますか?

よかった。ありがとう! 私たちが見にするための1 @johnoliverアリ・インス/ @

パッケージにdllを含めると、OpenJDKディストリビューターのサイズが大きくなるため、考慮する必要があります。 OS /セキュリティアップデートがそれらのランタイムに適用されない可能性があるため、Microsoftは静的リンクを推奨したり、独自のディレクトリにDLLを含めたりしません

見てください//social.msdn.microsoft.com/Forums/en-US/a28331ae-19a3-4a34-b3ba-1e8fd4430375/missing-apimswincore-dlls

それらはOSレベルのライブラリのように見えますが、どういうわけか名前が変更されています。 MSコミュニティからの提案は、すべてのAPIサーフェスのシムであるmincore.libを使用する必要があるというものですが、バイナリはWindows8以降でのみ機能します。

または、インストーラーパッケージで完全なVisual C ++再配布可能インストーラーを配布することもできます。

良い選択肢は何でしょうか?

@sunnythepooh

または、インストーラーパッケージで完全なVisual C ++再配布可能インストーラーを配布することもできます。

うん!!!

AdoptOpenJDKは、jdk.java.netリリースのドロップイン代替品である必要があります。

エンドユーザーにフープを飛び越えさせると、依存関係のないjlinkされたアプリの価値提案に非常に損害を与えることになります。

私見、AdoptOpenJDKにVC ++ redistを含めることを検討する理由はわかりますが、.dllで必要な場合にのみ含める必要があり、必要なのはJavaFX独自の.dllだけなので、含める理由は奇妙に思えます。

JavaFXパッケージに含める方が理にかなっています。

または、AdoptOpenJavaFXの追加パッケージに含めました:-)

JavaFXパッケージに含める方が理にかなっています。

理想的な世界の.dllがJavaFXパッケージに含まれていることは間違いないでしょう。

それまでの間、独自のAdoptOpenJavaFXパッケージの提供を開始するか、Gluonにパッケージに.dllを含めるよう説得するまで、AdoptOpenJDKはJavaFXアプリには使用できません。

あらゆる種類のより良い長期的なアプローチがあると確信していますが、それまでの間、これはAdoptOpenJDKにとって受け入れがたい状態です。

ここでの主な問題は、AdoptOpenJDKがJavaFXのビルドとは異なるバージョンのビジュアルスタジオ(チェックしますが、おそらくVS2013)でJDKをビルドすることだと思います(DLL名が欠落している場合は、おそらくVS2017です)。

最初にVSのバージョンを確認して、ここで更新してみます。

AdoptOpenJDK 12(ホットスポット)に必要なDLLが含まれているため、すべてがJavaFXアプリで完全に機能することに気付きました。

ありがとうございました!!!

AdoptOpenJDK 12(ホットスポット)に必要なDLLが含まれているため、すべてがJavaFXアプリで完全に機能することに気付きました。

ありがとうございました!!!

聞いて良かった-Java11および8の場合、この問題は今夜に解決されると思います。 @ ali-ince現在、すべてのバージョンでVS 2017を使用して構築していますか?

まだ@karianna 、それはまだ進行中です。 vs2017に切り替えたら、このスレッドを更新します。

これに関する簡単な更新。

  1. JDK11u64ビットビルドがVS2017に切り替えられました。
  2. JDK11u32ビットビルドはVS2013上にあります。 JDK11u 32ビットをVS2017でコンパイルできるようにする修正は、11.0.4アップデートで開始され、それと並行してVS2017に切り替えます。
  3. JDK8u 32ビットおよび64ビットビルドがVS2013に切り替えられました(以前はVS2010 / VS2013が混在していました)。 VS2017でもビルドできるように取り組んでいますが、アップストリームに送信するための修正を取得するには、もう少し時間がかかるようです。

こんにちは!
お客様の環境で、Cランタイムライブラリが見つからないという問題があります。
この問題の状況はどうですか?

回避策は、オペレーティングシステムと一緒にインストールされていない何千ものクライアントシステムすべてにCランタイムをインストールすることです。
Microsoft自体がこれらのバージョンをサポートしている限り、お客様にこれを強制したり、Windows Server 2012R2などから新しいバージョンに移行したりすることはできません。

//編集:
その間に他の回避策はありますか?

このページは役に立ちましたか?
0 / 5 - 0 評価