ubuntu - java - Convertir un Run.bat de Windows en un Run.sh

CorePress2023-09-17  1

"c:\program files\java\jdk1.8.0_75\bin\java.exe" -noverify -Xbootclasspath/a:"LSA.jar";"lib/bcel-5.2.jar";"lib/rsyntax.jar";"client.jar" -javaagent:"LSA.jar"=config.js -jar client.jar

Tengo un programa que quiero ejecutar en Ubuntu. Este es el script run.bat que he estado usando en Windows.

Para que el archivo del cliente funcione, lo entiendo

java -jar client.jar

Pero para que todo funcione, no entiendo cómo reemplazar "c:\program files\java\jdk1.8.0_75\bin\java.exe".

  • 1 Ejecute what java y reemplácelo con esa salida - George Udosen 20 de septiembre de 2017 a las 9:51
  • Al igual que con otras secuencias de rutas (por ejemplo, en la variable de entorno PATH que existe tanto en DOS como en *nix), probablemente necesitarás reemplazar el punto y coma por dos puntos, como "lib& #47;bcel-5.2.jar":"lib/rsyntax.jar":.... También puede omitir el punto y coma a menos que las rutas contengan espacios. – Peter - Reincorporar a Mónica 20 de septiembre de 2017 a las 15:01


------------Respuesta------------

Ejecute el comando what java o el comando -v java y obtendrá un resultado como:

/usr/bin/java

Esto significa que está instalado y usa Java en lugar de c:\program files\java\jdk1.8.0_75\bin\java.exe.

#!/bin/bash

En la parte superior de ese archivo.


  • 7 Obviamente no hay necesidad de usar una ruta cuando Java está en la ruta ;-). Y si no es así, también se quedará con las manos vacías. – Peter - Reincorporar a MoniCalifornia 20 de septiembre de 2017 a las 15:10


------------Respuesta------------

Si java está en tu RUTA, puedes simplemente decir "java" (no es necesario averiguar dónde está y cuál). Si no es así, debe averiguar dónde lo colocó su instalación (no estándar) y simplemente usar esa ruta al programa Java (que, etc., no le ayudaría aquí).

Tenga en cuenta que probablemente también necesitará reemplazar el punto y coma en la ruta de clase con dos puntos, como es el estilo *nix. Me imagino que Linux Java no maneja punto y coma.



------------Respuesta------------

Debes ver qué versión de Java tienes en tu caja. Escribe esto para identificarlo:

update-alternatives --query java

En mi computadora, encontré estos (por ejemplo):

~$ update-alternatives --query java
Name: java
Link: /usr/bin/java
Slaves:
 java.1.gz /usr/share/man/man1/java.1.gz
Status: auto
Best: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Value: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

Alternative: /opt/dev/jdk1.8.0_131/bin/java
Priority: 100
Slaves:

Alternative: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Priority: 1081
Slaves:
 java.1.gz /usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/java.1.gz

Puedes elegir la mejor ruta java (normalmente la de mayor prioridad), para que puedas crear tu script basándose en it.


  • "Así queMis aplicaciones no son compatibles con openjdk" ¿cuáles? OpenJDK es al menos tan capaz como Oracle Java, OpenJFX está disponible para Ubuntu que permite usar JavaFX, Icedtea-web permite usar Java Webstart, no tienes absolutamente ninguna excusa para seguir con Oracle Java. No he rechazado tu respuesta porque el desacuerdo afecta solo a una pequeña parte. - gouessej 20 de septiembre de 2017 a las 15:42
  • Ok, @gouessej, lo edité. Tuve problemas al usar OpenJDK, pero dejaré mi respuesta. - Redbob 20 de septiembre de 2017 a las 19:10


------------Respuesta------------

Gracias por toda la ayuda que necesitaba para reemplazar el punto y coma y usar

java -jar al principio.

Gracias a todos

Fred


  • Sí, las entradas de la ruta de clase están separadas por punto y coma solo debajoEn Windows, en todos los demás sistemas operativos están separados por dos puntos según la etiqueta "man". (ingrese "man java" en la terminal y mire la sección sobre la ruta de clase). - gouessej 21 de septiembre de 2017 a las 22:31