Agregar una carpeta de archivos jar a mi ruta

10

Tengo herramientas de Java que necesito usar. Las herramientas están en una carpeta llena de archivos jar. Quería agregar esta carpeta a mi ruta, por las razones obvias, pero después de editar mi .bash_profile para incluir la nueva carpeta en la variable $ PATH y obtenerla, no funciona. También intenté cerrar sesión y volver a iniciar sesión, y eso tampoco funcionó. Sigo recibiendo el mensaje de error "No se puede acceder a jarfile .jar"

Davy Kavanagh
fuente
¿Ha verificado si no es un problema de permisos?
matcheek
Tendrás que disculpar mi ignorancia, pero ¿cómo puedo comprobar esto?
Davy Kavanagh
Es posible que desee verificar esta respuesta: stackoverflow.com/questions/5569591/…
matcheek

Respuestas:

5

Para los archivos JAR, debe establecer CLASSPATH y no la variable de entorno PATH.

Si está utilizando BASH, es: export CLASSPATH="$CLASSPATH:<full_path_to_each_jar_files>"

Es mejor que lo agregue al archivo a .bashrcmenos que sepa lo que está haciendo.

Ejemplo:

export CLASSPATH="$CLASSPATH:$HOME/java/lib/foebar.jar:$HOME/extra/lib/another.jar"

Pero, por supuesto, si todavía está invocando el archivo jar con la clase Main, debe usar la ruta completa para ello:

java -jar $HOME/java/lib/main-prog.jar

Sin embargo, puede establecer su ejecución correcta y ejecutarla:

chmod u+x $HOME/java/lib/main-prog.jar
export PATH=$PATH:$HOME/java/lib
main-prog.jar

Pero debe tener cuidado de que su classpath sea correcto y enumerar todos los jar necesarios.

Huygens
fuente
Intenté exportar CLASSPATH = $ CLASSPATH: <my_new_path>, con <my_new_path> reemplazado por la ruta real de la carpeta, obtenida y aún el mismo resultado.
Davy Kavanagh
Lo siento, mi error, no es la ruta sino el archivo .jar con la ruta completa que pones, actualizaré la respuesta
Huygens
¿Significa esto que tendré que agregar a CLASSPATH, una nueva entrada para cada archivo jar. Hay alrededor de 80 de estos archivos jar.
Davy Kavanagh
@DavyKavanagh Nota: no agregue la variable de entorno a .bashrc, agréguelo a .profile. Ver Alternativa a .bashrc
Gilles 'SO- deja de ser malvado'
@DavyKavanagh, perdón por el largo retraso en la respuesta. Pero sí, esto significaría agregar los 80 archivos jar al classpath.
Huygens
2

Si sus herramientas son scripts, que contienen comandos como

 java -jar somejafile.jar

entonces debes editarlos para que contengan la ruta correcta

 java -jar /full/path/to/somefile.jar
Jari Laamanen
fuente
No, lo siento, las herramientas son los propios archivos jar
Davy Kavanagh