LSOpenURLsWithRole () gagal dengan kesalahan -10810 - Aplikasi yang diunduh tidak dimulai

14

Saya mencoba menjalankan aplikasi yang diunduh dari internet (mis., Jabref) tetapi tampaknya gagal secara diam-diam. Ketika saya mencoba membukanya dengan mengklik dua kali, tidak ada yang terjadi. Ketika saya menggunakan terminal saya mendapatkan pesan berikut:

LSOpenURLsWithRole () gagal dengan kesalahan -10810 untuk file ... / xxxx.app

Saya mencoba beberapa saran yang saya temukan di sini seperti mengubah izin dan memodifikasi file Info.plist, tetapi tidak ada yang berhasil.

Karena ini adalah aplikasi Java, saya mencoba menjalankannya melalui terminal menggunakan

java -cp "CLASSPATH" MAINCLASS

dan itu bekerja dengan baik.

Hanya untuk menyebutkan bahwa saya mendapatkan kesalahan ini tidak hanya dengan aplikasi ini, tetapi untuk beberapa aplikasi lainnya.

Terima kasih sebelumnya.

STiGMa
sumber

Jawaban:

8

LSOpenURLsWithRole adalah fungsi yang digunakan untuk mengaitkan file dengan suatu program. File yang Anda klik dua kali sebenarnya bukan aplikasi, tetapi file data.

Ini adalah bagaimana, misalnya, ketika mengklik dua kali dokumen teks, program TextEdit atau aplikasi terkait lainnya diluncurkan.

Anda harus mengaitkannya dengan java runtime, dengan anggapan Anda telah menginstalnya.

Jika Anda mengklik kanan pada file dan memilih Dapatkan Info, panel info memiliki bagian yang disebut "Buka Dengan:". Itu harus diatur ke java runtime.

Kesatria Kegelapan
sumber
3

Bagi siapa pun yang datang ke sini yang melihat masalah ini untuk program non-Jawa: Saya mendapatkan pesan kesalahan yang sama ketika mencoba menjalankan file .app yang berisi executable Mach-O. Mencoba menjalankan executable langsung dari dalam bundel (mis. Foo.app/Contents/MacOS/bar) Memberi saya kesalahan yang jauh lebih baik yang menunjukkan saya kehilangan ketergantungan dinamis lib:

dyld: Library not loaded:/usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets

Sesuatu untuk dicoba jika Anda melihat kesalahan ini.

AndrewJC
sumber
1

Saya juga menghadapi kesalahan ini dengan program Java yang saya coba gunakan. Saya tidak bisa menjalankannya di Mac kedua: 10.11.6. Saya mencari di mana-mana untuk jawabannya, tetapi tidak pernah menemukannya, jadi saya menempatkan ini di sini untuk orang lain. Dengan meluncurkan System Console, saya menemukan pesan kesalahan bahwa program "terbuka" tidak dapat menemukan program "JavaApplicationStub" di bundel Isi. Masalahnya adalah, bundel saya menggunakan "JavaAppLauncher" untuk diluncurkan. Saya baru saja berubah dari menggunakan Apple JarBundler lama ke Oracle AppBundler sehingga saya bisa menandatangani aplikasi, dan nama program peluncurannya berbeda. Kuncinya di sini adalah bahwa bundel baru (versi 7.1.1) menggantikan yang lama (versi 7.1.0), dan memiliki nama aplikasi yang sama. Yang lama menggunakan JavaApplicationStub untuk meluncurkan.

Tampaknya properti Info.plist untuk program di-cache, dan menggunakan nilai basi untuk meluncurkan bundel baru. Tidak tahu apakah cache dihapus saat logout atau reboot, atau apakah ini diperbaiki di versi OS X yang lebih baru, tetapi saya harus menjalankannya dengan lancar untuk semua pengguna akhir.

Saya mengatasi masalah dengan memasukkan nomor versi dalam nama program.

wjrl
sumber