Variabel PATH env pada Mac OS X dan / atau Eclipse


17

Ketika saya mencetak path di bash, ia mencetak ini:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Ketika saya menjalankan System.out.println (System.getenv ("PATH")); di Jawa berjalan di bawah Eclipse, ia mencetak

/usr/bin:/bin:/usr/sbin:/sbin

Bagaimana saya bisa mengetahui mengapa ada perbedaan ini? Saya perlu menambahkan / usr / local / bin ke PATH dan membuatnya tersedia untuk aplikasi Java di bawah Eclipse. (catatan: Saya tidak membuat modifikasi jalur sistem, jadi ini adalah default yang ditetapkan oleh OS atau mungkin oleh satu atau lebih aplikasi yang telah saya instal.)

Jawaban:


10

Jika Anda ingin mengatur lebar sistem variabel pada OSX Anda harus meletakkannya di file ~ / .MacOSX / environment.plist Anda.

Lihat halaman ini di situs web apple untuk detail lebih lanjut.


1
Sayangnya, ini sepertinya tidak berhasil untuk saya.
thSoft

9

Bagi Anda yang mencari jawaban bertahun-tahun kemudian (Neon, Oksigen):

Beberapa tool node dan angular / angular2 saya di eclipse gagal karena tidak ada entri $ PATH di terminal MacOS. Perkakas Anda secara proporsional menggunakan terminal gerhana tertanam yang tidak mulai menyediakan shell login / pengguna Anda. Jadi, Anda perlu mengatur terminal gerhana di preferensi gerhana Anda untuk memulai sebagai --login shell agar terdiri dari pengaturan PATH pengguna Anda:

Pergi ke:

Preferences -> Terminal -> Local Terminal

dan mengatur

Arguments untuk: --login

buka Terminal baru di dalam Eclipse dan $ PATH pengguna Anda harus digunakan mulai sekarang. Juga semua yang telah Anda atur di ~ / .bash_profile akan berjalan ketika membuka Terminal baru di Eclipse.


Solusi terbaik, selesaikan masalahnya hanya dengan mengubah konfigurasi gerhana di GUI.
pXel

Jawaban ini membuat saya meningkatkan ke Oxygen, dan hanya itu yang saya butuhkan untuk membuatnya bekerja.
John

Saya tidak memiliki submenu "Terminal" di Eclipse dengan versi string "2019-06 (4.12.0)".
tsj

8

Punya masalah yang sama. Ini solusinya:

  1. Edit /etc/pathsfile untuk memasukkan jalur tambahan yang diinginkan.

  2. Untuk instalasi OSX, jalankan /Applications/eclipse/eclipse tidak /Applications/eclipse/Eclipse.app


1
OMG nomor 2 di sini adalah solusi untuk SO JUMLAH FRUSTRASI Terima kasih!!
Tommy

1
Saya mendaftar ke situs web ini supaya saya dapat menjawab pertanyaan ini - item # 2 memperbaikinya!
Iftah

Di mana saya dapat menemukan etc / paths?
John

1
@ John /etc/pathsadalah path lengkap file. Anda dapat melakukan Cmd + Shift + G dan kemudian memasukkan "/ etc" ke dalamnya dan tekan enter / return. Anda harus menemukan file di sana bernama "jalur".
Sufian

6

Aha, saya menemukan halaman web ini yang mengatakan

Catatan: Mac OS X tidak menyertakan / usr / local / bin di PATH defaultnya. Karenanya, dengan asumsi Anda menggunakan bash shell default, ketik (atau sertakan di / etc / profile) export PATH = / usr / local / bin: $ PATH sebelum menggunakan salah satu dari alat ini.

Apakah ini hal yang pantas / tidak pantas untuk dilakukan? Saya mulai ragu mengedit file sistem kecuali saya benar-benar tahu apa yang saya lakukan. / usr / local / bin hanya bisa ditulisi oleh root jadi saya tidak akan membuka lubang keamanan, bukan?


Aneh, saya menambahkan jalur ekspor, dan itu tidak berpengaruh pada lari gerhana dari Dock. Saya juga menemukan halaman ini tentang path dan file / etc / paths saya miliki

/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

namun jalur tersebut tidak muncul di gerhana ... apakah ada cara mudah untuk membuat / menemukan file biner yang mencetak $ PATH, yang bisa saya jalankan dari Dock, jadi saya bisa men-debug ini dengan lebih mudah? Saya tidak tahu apakah Eclipse bermain-main dengan jalan.


2
+1 untuk pertanyaan terakhir Anda. Saya bertanya-tanya bagaimana cara mendiagnosis masalah jalur di OS X tidak di bash atau Terminal.
fideli

Catatan untuk Googler di masa mendatang: Apple sekarang termasuk yang /usr/local/binpertama di pengguna $PATH. (Lihat di sini .)
Telemakus

4

Jika Anda menggunakan Eclipse (diuji dengan "Mars"), Anda dapat mengubah "Run Configuration":

  1. Klik "Run" → "Run Configurations ..."
  2. Pilih konfigurasi jalankan yang sesuai di sebelah kiri
  3. Sekarang pilih tab "Lingkungan"
  4. Klik pada "Baru ..."
  5. Di bidang "Nama", masukkan "PATH"
  6. Sekarang, masuklah ke Terminal Anda, masukkan "echo $ PATH" dan salin hasilnya
  7. Lewati hasilnya ke dalam bidang "Nilai"
  8. Klick "OK"
  9. Kembali ke tab "Lingkungan", pastikan Anda memilih "Tambahkan lingkungan ke lingkungan asli"

Sekarang Eclipse menggunakan nilai yang sama untuk variabel lingkungan PATH seperti sistem Anda. Ingat: Ini hanya berlaku untuk menjalankan konfigurasi yang Anda pilih.

Seperti yang sudah disebutkan dalam pertanyaan Anda, periksa di Jawa dengan:

System.getenv();

2

Kemungkinan besar, salah satu skrip login bash Anda ( .bashrcatau .bash_profile) berubah $PATH. Jika Anda memulai Eclipse dari terminal, apakah ada /usr/local/bindi jalurnya?


1
panggilan yang bagus! Jika saya menjalankan Eclipse dari terminal, ia memiliki / usr / local / bin di path. Sekarang apa yang harus saya lakukan? Bukankah / usr / local / bin sesuatu yang harus di jalur ke semua aplikasi? skrip mana yang bisa saya masukkan ini, sehingga jika saya menjalankan Eclipse dari Finder atau dari Dock, itu akan berada di jalan?
Jason S

1
Juga saya tidak memiliki .bashrc atau .bash_profile di direktori pengguna saya.
Jason S

2

Kiat di atas berfungsi untuk saya: 1) tambahkan path ke / etc / paths sebagai root 2) mulailah gerhana dengan $ ECL_HOME / Eclipse.app / Contents / MacOS / eclipse daripada $ ECL_HOME / Eclipse.app


Yang ini bekerja untuk saya, terima kasih banyak! Dalam kasus saya, jalur untuk menjalankan Eclipse adalah /Applications/Eclipse.app/Contents/MacOS/eclipse
Tsung-Ting Kuo

2

Atau Anda bisa menambahkan tautan simbolis ke /usr/localdirektori Anda yang menunjuk ke aplikasi Anda.

Misalnya lakukan sebagai root:

ln -s /Applications/PhantomJS/phantomjs-1.9.2-macosx/bin/phantomjs / usr / local / phantomjs

Ini membantu saya menjalankan (mvn test) aplikasi PhantomJS eksternal dari dalam proyek Maven di Eclipse.


Ini sepertinya tidak ada hubungannya dengan $PATHatau direktori di $PATHsuka /usr/local/bin. Bisakah Anda jelaskan lebih terinci?
pabouk

Anda meletakkan tautan simbolis di suatu tempat di jalur, yang menunjuk ke lokasi sebenarnya yang tidak di jalur. Saya pernah melakukannya sebelumnya, ini berfungsi untuk executable tunggal, tidak berfungsi untuk direktori yang penuh dengan file
Jason S


1

Eclipse NEON, mac OS X 10.11.6
Terminal di Eclipse tidak dapat menggunakan mvnperintah. (Saya membuat satu tautan lunak mvndi dalam /usr/local/bin)

Solusi temp:

Klik kanan /Applications/eclipse-> tampilkan konten paket -> konten -> MacOS -> klik dua kali eclipseuntuk memulai.

Mulai Eclipse dengan cara ini, Eclipse dapat mendeteksi semua pengaturan jalur dan kemudian saya dapat menggunakan mvnperintah di terminal Eclipse sekarang.

Anda dapat mengklik kanan eclipsedi folder ini dan membuat alias untuk memulainya dengan nyaman.

Saya tidak tahu mengapa sekarang. Saya pikir ini harus menjadi salah satu gerhana BUG.


0

edit ~/.bash_profileuntuk memasukkan path

alih-alih memulai di launchpad,

buka terminal dan mulai sebagai

/Applications/Eclipse.app/Contents/MacOS/eclipse

Itu berhasil bagi saya.


0

Menyatukan beberapa jawaban dan memperbarui ke sesuatu yang mudah:

  1. Klik kanan Eclipse.app dan pilih "Tampilkan Isi Paket"
  2. Arahkan ke Konten / MacOS untuk menemukan "gerhana".
  3. Klik kanan dan pilih "Buat Alias", atau seret dan lepas sambil menahan perintah dan opsi.
  4. Tempatkan alias di tempat yang nyaman, seperti kembali di Aplikasi.
  5. Klik dua kali untuk memulai.
  6. Tidak ada Langkah 6!

Ini tidak hanya akan membuka jendela Terminal berguna yang menampilkan output Eclipse mentah, itu akan secara otomatis mengadopsi jalur apa pun yang telah Anda tetapkan di shell login Anda.

Jadi Anda dapat menggunakan salah satu metode normal untuk mengatur jalur Anda (mengedit /etc/pathsatau ~/.bash_profileatau hanya menginstal alat baris perintah berperilaku baik mbed), dan tidak perlu khawatir lagi. Jika Anda dapat memanggilnya dari Terminal maka Eclipse dapat memanggilnya juga.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.