Temurin-build: DLL hilang berarti pengguna dipaksa untuk mengunduh Microsoft Visual C ++ Redistributable

Dibuat pada 29 Jan 2019  ·  13Komentar  ·  Sumber: adoptium/temurin-build

AdoptOpenJDK tidak termasuk DLL seperti api-ms-win-core-console-l1-1-0.dll

Ini berarti aplikasi JavaFX yang berjalan di AdoptOpenJDK akan gagal dijalankan kecuali pengguna juga menginstal Microsoft Visual C ++ Redistributable di sistem mereka.

Contoh kesalahan ini didokumentasikan di sini: https://github.com/javafxports/openjdk-jfx/issues/365#issuecomment -458720720

bug windows

Komentar yang paling membantu

Pembaruan cepat tentang ini;

  1. JDK11u build 64-bit sekarang dialihkan ke VS2017.
  2. JDK11u versi 32-bit ada di VS2013. Perbaikan yang memungkinkan JDK11u 32-bit untuk dikompilasi dengan VS2017 akan diluncurkan dengan pembaruan 11.0.4 dan kami akan beralih ke VS2017 yang paralel dengan itu.
  3. Build JDK8u 32-bit dan 64-bit sekarang dialihkan ke VS2013 (sebelumnya menggunakan campuran VS2010 / VS2013). Kami juga sedang berupaya untuk membuatnya dibangun di VS2017, tetapi tampaknya perlu lebih banyak waktu untuk mendapatkan perbaikan untuk dikirimkan ke upstream.

Semua 13 komentar

@johanvos - Apakah ini sesuatu yang Anda harapkan dari distro kami atau apakah itu bagian dari paket JavaFX di atas?

Ini adalah bagian dari distribusi OpenJDK, jadi untuk alasan konsistensi, saya pikir ini juga harus menjadi bagian dari distribusi AdoptOpenJDK?

Terima kasih banyak! @ ali-ince / @johnoliver satu untuk kita lihat

Memasukkan dll ke dalam paket akan meningkatkan ukuran distribusi OpenJDK yang harus menjadi pertimbangan. Microsoft tidak merekomendasikan penautan statis atau menyertakan DLL di direktori Anda sendiri karena pembaruan OS / keamanan mungkin tidak berlaku untuk runtime tersebut

Melihat: https://social.msdn.microsoft.com/Forums/en-US/a28331ae-19a3-4a34-b3ba-1e8fd4430375/missing-apimswincore-dlls

Sepertinya itu adalah pustaka tingkat OS tetapi entah bagaimana mereka telah mengubah namanya. Saran dari komunitas MS adalah kita harus menggunakan mincore.lib yang merupakan shim untuk semua permukaan api, tetapi biner hanya akan bekerja dengan Windows 8+.

Atau kami mungkin dapat mendistribusikan penginstal Visual C ++ yang dapat didistribusikan ulang secara penuh dalam paket penginstal kami.

Apa pilihan yang bagus?

@tokopedia

Atau kami mungkin dapat mendistribusikan penginstal Visual C ++ yang dapat didistribusikan ulang secara penuh dalam paket penginstal kami.

Yuck !!!

AdoptOpenJDK harus menjadi pengganti drop-in untuk rilis jdk.java.net.

Jika Anda membuat pengguna akhir melewati rintangan, itu akan sangat merusak proposisi nilai aplikasi jlink tanpa ketergantungan.

IMHO, Meskipun saya dapat melihat alasan mengapa Anda mempertimbangkan untuk menyertakan VC ++ redist di AdoptOpenJDK, Anda sebaiknya hanya menyertakannya jika .dll memerlukannya dan karena satu-satunya hal yang memerlukannya adalah .dll JavaFX sendiri, maka alasan untuk memasukkannya tampak aneh .

Lebih masuk akal jika paket JavaFX menyertakannya.

Atau memasukkannya ke dalam pacakge tambahan AdoptOpenJavaFX :-)

Lebih masuk akal jika paket JavaFX menyertakannya.

Saya dapat melihat bahwa Anda mungkin benar bahwa .dlls di dunia yang ideal harus ada dalam paket JavaFX.

Sementara itu, hingga Anda dapat mulai menyediakan paket AdoptOpenJavaFX Anda sendiri atau meyakinkan Gluon untuk menyertakan .dlls dalam paket mereka, AdoptOpenJDK tidak dapat digunakan untuk aplikasi JavaFX.

Saya yakin ada semua jenis pendekatan jangka panjang yang lebih baik, tetapi sementara itu, ini adalah keadaan limbo yang tidak dapat diterima untuk AdoptOpenJDK.

Saya pikir masalah utama di sini mungkin bahwa AdoptOpenJDK membangun JDK dengan versi studio visual yang berbeda (saya akan memeriksa tetapi mungkin VS2013) daripada JavaFX dibangun dengan (mengingat nama DLL hilang, mungkin VS2017).

Saya akan mencoba memverifikasi versi VS terlebih dahulu dan memperbarui di sini.

Saya perhatikan bahwa AdoptOpenJDK 12 (hotspot) sekarang memiliki DLL yang diperlukan, jadi semuanya berfungsi dengan sempurna untuk aplikasi JavaFX.

Terima kasih!!!

Saya perhatikan bahwa AdoptOpenJDK 12 (hotspot) sekarang memiliki DLL yang diperlukan, jadi semuanya berfungsi dengan sempurna untuk aplikasi JavaFX.

Terima kasih!!!

Senang mendengarnya - Untuk Java 11 dan 8, saya kira masalah ini akan diselesaikan di nightlies sekarang. @ ali-ince Apakah kita sedang membangun dengan VS 2017 untuk semua versi sekarang?

Belum @karianna , itu masih dalam proses. Saya akan memperbarui utas ini ketika kami beralih ke vs2017.

Pembaruan cepat tentang ini;

  1. JDK11u build 64-bit sekarang dialihkan ke VS2017.
  2. JDK11u versi 32-bit ada di VS2013. Perbaikan yang memungkinkan JDK11u 32-bit untuk dikompilasi dengan VS2017 akan diluncurkan dengan pembaruan 11.0.4 dan kami akan beralih ke VS2017 yang paralel dengan itu.
  3. Build JDK8u 32-bit dan 64-bit sekarang dialihkan ke VS2013 (sebelumnya menggunakan campuran VS2010 / VS2013). Kami juga sedang berupaya untuk membuatnya dibangun di VS2017, tetapi tampaknya perlu lebih banyak waktu untuk mendapatkan perbaikan untuk dikirimkan ke upstream.

Hai!
Kami memiliki masalah di lingkungan pelanggan kami dengan pustaka runtime C yang hilang.
Bagaimana status masalah ini?

Solusinya adalah menginstal runtime C dan SEMUA ribuan sistem klien yang tidak menginstalnya dengan sistem operasi.
Kami tidak dapat memaksa pelanggan kami untuk melakukan ini atau berpindah dari misalnya Windows Server 2012 R2 ke versi yang lebih baru selama Microsoft sendiri mendukung versi ini.

// EDIT:
Apakah ada solusi lain untuk sementara itu?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat