Apa yang sebenarnya dilakukan oleh file .app?

12

Saya baru mengenal Mac OS X (berasal dari Windows), dan saya mencoba memahami file .app. Di Windows, kami memiliki file executable (.exe). Jika Anda membuka satu, program Anda akan berjalan, dan semua file lain yang dibutuhkan ada di tempat lain. Di Mac OS X, seperti yang saya mengerti, "file" .app ini benar-benar lebih mirip folder yang tidak hanya berisi file yang dapat dieksekusi itu sendiri tetapi juga file lain yang mungkin diperlukan oleh aplikasi.

Pertanyaan saya adalah, apa tepatnya yang dilakukan file .app ini? Apa bedanya dengan mengebor mereka dan menjalankan executable yang sebenarnya?

Baru-baru ini saya mencoba untuk menjalankan aplikasi pada OS X. Saya akhirnya berhasil (sepertinya JAVA_HOME perlu diatur). Namun, itu hanya berfungsi ketika saya menelusuri folder .app dan menjalankan skrip shell yang memulai aplikasi. Jika saya mengklik dua kali file .app / folder, aplikasi hanya memantul di dermaga untuk sementara waktu, akhirnya berhenti, dan tidak ada yang terjadi (selain kipas yang berputar seperti orang gila). Jadi jelas OS melakukan sesuatu yang berbeda ketika mencoba menjalankan aplikasi dari file .app vs. langsung dari executable di dalamnya.

Saya ingin memahami apa sebenarnya yang dilakukan .app yang menyebabkan aplikasi ini tidak berjalan sehingga saya dapat bekerja untuk memperbaiki masalah ini. FYI aplikasinya adalah Oracle Developer SQL.

pengguna1015721
sumber
2
.app hanyalah ekstensi dan tidak wajib di OSX agar folder berperilaku seperti aplikasi. Apakah Anda mengklik kanan file yang dimaksud dan mengungkapkan kontennya? Mungkin membantu Anda memperbaiki tata letak dan memperbaiki kesalahan yang Anda alami.
bmike
Ekstensi .app mengubah direktori biasa menjadi apa yang disebut "bundel aplikasi" —yang menyertakan aplikasi yang dapat dieksekusi dan sumber daya terkait (ikon, grafik, file properti, pelokalan, dll.) Lihat di en.m.wikipedia.org/wiki/ Artikel Application_bundle atau dokumentasi pengembang Apple.
Alex Popov

Jawaban:

12

"aplikasi" adalah "Paket Bundel" adalah jargon Apple, dan diperlakukan secara khusus oleh OS. Seperti disebutkan di atas, ini sebenarnya direktori Unix, dalam format khusus. File Unix Executable yang sebenarnya ada di subdirektori bernama MacOS, yang bisa Anda lihat menggunakan menu "Show Package Contents" di Finder.

"Aplikasi" ini analog dengan direktori yang dibuat saat Anda menginstal program Windows. Anda memang dapat menavigasi ke aplikasi, dan menjalankan File Unix Executable.

Ini tidak memecahkan masalah Anda, tetapi tanpa mengetahui lebih lanjut tentang aplikasi itu tidak akan diselesaikan dengan memanipulasi paket. Anda harus menghubungi pengembang.

Anda juga dapat melihat aplikasi Konsol, yang memungkinkan Anda memeriksa pesan kesalahan atau peringatan.

Milliways
sumber
Terimakasih atas infonya. Ternyata aplikasi bergantung pada variabel lingkungan yang ditetapkan di shell tetapi tidak secara global (untuk digunakan oleh aplikasi GUI yang diluncurkan dari Finder atau Spotlight, misalnya). Itu sebabnya saya melihat perilaku yang berbeda ketika saya menjalankannya dari shell vs. dari ikon di dock. Sejak itu saya telah menyelesaikan masalah dengan menetapkan variabel itu secara global.
user1015721