PATH env variable en Mac OS X y / o Eclipse

17

Cuando imprimo la ruta en bash, imprime esto:

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

Cuando ejecuto System.out.println (System.getenv ("PATH")); en Java que se ejecuta bajo Eclipse, imprime

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

¿Cómo puedo averiguar por qué existe esta discrepancia? Necesito agregar / usr / local / bin a la RUTA y ponerla a disposición de las aplicaciones Java en Eclipse. (nota: no he modificado las rutas del sistema, por lo que estos son los valores predeterminados establecidos por el sistema operativo o tal vez por una o más de las aplicaciones que he instalado).

Jason S
fuente

Respuestas:

10

Si desea establecer un sistema variable en todo OSX, debe colocarlo en su archivo ~ / .MacOSX / environment.plist.

Consulte esta página en el sitio web de Apple para obtener más detalles.

Ted Naleid
fuente
1
Desafortunadamente, esto no parece funcionar para mí.
Jueves
9

Para aquellos de ustedes que buscan una respuesta años más tarde (Neon, Oxygen):

Algunas de mis herramientas de nodo y angular / angular2 en eclipse fallaron debido a la falta de entradas de $ PATH en el terminal de MacOS. Sus herramientas utilizan el terminal eclipse incorporado que no comienza a proporcionar su shell de inicio de sesión / usuario. Por lo tanto, debe configurar el terminal de eclipse en sus preferencias de eclipse para comenzar como --login shell para comprender la configuración de RUTA de sus usuarios:

Ir:

Preferences -> Terminal -> Local Terminal

y establecer

Arguments a: --login

abra una nueva Terminal dentro de Eclipse y el $ PATH de su usuario debería usarse de ahora en adelante. Además, todo lo que haya configurado en ~ / .bash_profile se ejecutará al abrir una nueva Terminal en Eclipse.

Martin Peter
fuente
La mejor solución, resuelve el problema simplemente cambiando la configuración de eclipse en la GUI.
pXel
Esta respuesta me hizo actualizar a Oxígeno, y eso fue todo lo que necesitaba para que funcionara.
John
No tengo el submenú "Terminal" en Eclipse con la cadena de versión "2019-06 (4.12.0)".
tsj
8

Tuve el mismo problema Aquí está mi solución:

  1. Edite el /etc/pathsarchivo para incluir la ruta adicional deseada.

  2. Para una instalación de OSX, no ejecute/Applications/eclipse/eclipse /Applications/eclipse/Eclipse.app

usuario150161
fuente
1
omg número 2 aquí fue la solución a TANTA FRUSTRACIÓN. ¡¡Gracias!!
Tommy
1
Me registré en este sitio web solo para poder votar esta respuesta, ¡el ítem # 2 lo arregló!
Iftah
¿Dónde puedo encontrar los etc / caminos?
John
1
@John /etc/pathses la ruta completa del archivo. Puede hacer Cmd + Shift + G y luego poner "/ etc" en él y presionar enter / return. Debe encontrar el archivo allí llamado "rutas".
Sufian
6

Ajá, encontré esta página web que dice

Nota: Mac OS X no incluye / usr / local / bin en su RUTA predeterminada. Por lo tanto, suponiendo que esté utilizando el shell bash predeterminado, escriba (o incluya en / etc / profile) export PATH = / usr / local / bin: $ PATH antes de usar cualquiera de estas herramientas.

¿Es esto algo apropiado / inapropiado que hacer? Me desconfío de editar archivos del sistema a menos que realmente sepa lo que estoy haciendo. / usr / local / bin solo se puede escribir por root, así que no estaría abriendo un agujero de seguridad, ¿verdad?


Extraño, agregué la ruta de exportación, y no tiene ningún efecto en la ejecución del eclipse desde el Dock. También encontré esta página sobre rutas y mi archivo / etc / paths tiene

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

y sin embargo, esas rutas no se muestran en eclipse ... ¿hay una manera fácil de crear / encontrar un archivo binario que imprima $ PATH, que pueda ejecutar desde el Dock, para poder depurar esto más fácilmente? No sé si Eclipse juega con el camino.

Jason S
fuente
2
+1 para tu pregunta final. Me pregunto cómo diagnosticar problemas de ruta en OS X, no en bash o en la Terminal.
fideli
Nota para futuros Googlers: Apple ahora incluye /usr/local/binprimero en los usuarios $PATH. (Ver aquí .)
Telémaco el
4

Si está en Eclipse (probado con "Mars"), puede cambiar su "Configuración de ejecución":

  1. Haga clic en "Ejecutar" → "Ejecutar configuraciones ..."
  2. Elija la configuración de ejecución adecuada a la izquierda
  3. Ahora elija la pestaña "Medio ambiente"
  4. Haga clic en "Nuevo ..."
  5. En el campo "Nombre", ingrese "RUTA"
  6. Ahora ve a tu Terminal, ingresa "echo $ PATH" y copia el resultado
  7. Pasar el resultado al campo "Valor"
  8. Haga clic en "OK"
  9. De vuelta en la pestaña "Entorno", asegúrese de seleccionar "Agregar entorno al entorno nativo"

Ahora Eclipse usa los mismos valores para la variable de entorno PATH que su sistema. Recuerde: Esto solo es cierto para la configuración de ejecución que eligió.

Como ya se señaló en su pregunta, verifique en Java con:

System.getenv();
Miguel
fuente
2

Lo más probable es que uno de los scripts de inicio de sesión de bash ( .bashrco .bash_profile) esté cambiando $PATH. Si inicia Eclipse desde la terminal, ¿se pone /usr/local/binen su camino?

derobert
fuente
1
¡buena llamada! Si ejecuto Eclipse desde la terminal, tiene / usr / local / bin en la ruta. ¿Y ahora que debo hacer? ¿No es / usr / local / bin algo que debería estar en el camino a todas las aplicaciones? ¿en qué script puedo poner esto, de modo que si ejecuto Eclipse desde Finder o desde el Dock, estará en la ruta?
Jason S el
1
Además, no tengo un .bashrc o .bash_profile en mi directorio de usuarios.
Jason S el
2

Este consejo anterior funciona para mí: 1) agregar ruta a / etc / path como root 2) iniciar eclipse con $ ECL_HOME / Eclipse.app / Contents / MacOS / eclipse en lugar de $ ECL_HOME / Eclipse.app

Kathy
fuente
Este funciona para mí, muchas gracias! En mi caso, la ruta para ejecutar Eclipse es /Applications/Eclipse.app/Contents/MacOS/eclipse
Tsung-Ting Kuo
2

Alternativamente, puede agregar un enlace simbólico a su /usr/localdirectorio que apunte a su aplicación.

Ej. Hacer como root:

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

Esto me ayudó a ejecutar (prueba mvn) la aplicación externa PhantomJS desde un proyecto Maven en Eclipse.

puñal
fuente
Esto no parece tener nada que ver $PATHni con directorios $PATHsimilares /usr/local/bin. ¿Podría explicarme más detalles?
Pabouk
pones un enlace simbólico en algún lugar de la ruta, que apunta a la ubicación real que no está en la ruta. Lo he hecho antes, funciona para ejecutables individuales, no funciona para un directorio lleno de archivos
Jason S
1

Eclipse NEON, mac OS X 10.11.6
El terminal en Eclipse no puede usar el mvncomando. (Hago un enlace suave de mvnin /usr/local/bin)

Solución temporal:

Haga clic derecho /Applications/eclipse-> mostrar contenido del paquete -> contenido -> MacOS -> haga doble clic eclipsepara comenzar.

Inicie Eclipse de esta manera, Eclipse puede detectar todas las configuraciones de ruta y luego puedo usar el mvncomando en la terminal de Eclipse ahora.

Puede hacer clic derecho eclipseen esta carpeta y crear un alias para iniciarlo convenientemente.

No sé por qué ahora. Creo que este debería ser un error de eclipse.

bluearrow
fuente
0

editar el ~/.bash_profilepara incluir la ruta

en lugar de comenzar en la plataforma de lanzamiento,

abra la terminal y comience como

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

Eso hizo el truco para mí.

Vince C
fuente
0

Reunir algunas respuestas y actualizar a algo fácil:

  1. Haga clic con el botón derecho en Eclipse.app y elija "Mostrar contenido del paquete"
  2. Navegue a Contenido / MacOS para encontrar "eclipse".
  3. Haga clic derecho y elija "Crear alias", o arrástrelo y suéltelo mientras mantiene presionado el comando y la opción.
  4. Coloque el alias en un lugar conveniente, como en Aplicaciones.
  5. Haga doble clic para iniciar.
  6. ¡No hay paso 6!

Esto no solo abrirá una útil ventana de Terminal que muestra la salida de Eclipse sin procesar, sino que adoptará automáticamente cualquier ruta que haya establecido en su shell de inicio de sesión.

Así que usted puede utilizar cualquiera de los métodos normales para establecer su trayectoria (edición /etc/pathso ~/.bash_profileo simplemente instalar la herramienta de línea de comandos así se comportó como mbed), y la preocupación no más lejos. Si puede llamarlo desde la Terminal, entonces Eclipse también puede llamarlo.

Heath Raftery
fuente