Error, intento ejecutar archivo.jar

Reciban un saludo.
Intento ejecutar un archivo .jar, específicamente el Certifica.jar del SAT, en México.
El mismo archivo en pendrive funciona bien en windows con la máquina jav de oracle.
Sin embargo en fedora lxqt, no me ha sido posible, tenia los paquetes nativos, es decir javaopenjdk… y jre1.8*… Desinstalé e instalé el jdk de oracle, sigue sin funcionar.

el error:
EVERE: null
java.lang.reflect.InaccessibleObjectException: Unable to make field private static volatile java.nio.charset.Charset java.nio.charset.Charset.defaultCharset accessible: module java.base does not “opens java.nio.charset” to unnamed module @774bd0a2
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:180)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:174)
at mx.sat.gob.SolcediV2.main(SolcediV2.java:1809)

Y ya no supe por dónde. ¿Algún comandillo que deba tirarle para hacerlo funcionar? Desde ahora les agradezco y suplico tengan paciencia, responderé lento.

1 Like

Podrias darnos el resultado de estos comandos en consola:

java -version
sudo update-alternatives --display java
sudo update-alternatives --config java
update-alternatives --list

Información Adicional

Generalmente estos paquetes requieren de una version antigua de java, generalmente el java 1.8, puedes estar ejecutando el programa con una version erronea de java no compatible con su programa, vea la documentación:

  1. Como instalar una version antigua de javaInstalling Java :: Fedora Docs
  2. Como selecionar esa version antigua de java despues de instalada → Installing Java :: Fedora Docs

Links

Confirmado

Con java 11 funciona bien:

0.- Instalar la versión:

sudo dnf install java-11-openjdk-devel.x86_64

1.- Ejecutar este comando para configurar java 11 como defecto:

sudo update-alternatives --config java

despues y selecionar java 11

-----------------------------------------------
   1           java-latest-openjdk.x86_64 (/usr/lib/jvm/java-18-openjdk-18.0.1.0.10-1.rolling.fc36.x86_64/bin/java)
 + 2           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.15.0.10-1.fc36.x86_64/bin/java)
*  3           java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.3.0.7-2.fc36.x86_64/bin/java)

el + significa cual version se esta usando por defecto.

2.- Confirmar la Versión

java -version
openjdk 11.0.15 2022-04-19
OpenJDK Runtime Environment 18.9 (build 11.0.15+10)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.15+10, mixed mode, sharing)

3.- Resultado

NOTA

es ejecutado con la versión openjdk

Saludos.,

Enterado, a todos gracias. Saliendo el trabajo, en la tarde, casi noche, retiro java en su versión de oracle e instalo openjdk, como en un principio, e intento con las distintas versiones. Java 11, según leo.

¡Listo! También de no saber se olvida. Tan sencillo como eso, caray. Gracias.

Ejecutando Certifica.jar con OpenJDK 11 (java -jar Certifica.jar) ahora da el siguiente error:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by mx.sat.gob.SolcediV2 (file:/home/jorge/Descargas/Certifica.jar) to field java.nio.charset.Charset.defaultCharset
WARNING: Please consider reporting this to the maintainers of mx.sat.gob.SolcediV2
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread “main” java.lang.UnsatisfiedLinkError: Can’t load library: /usr/lib/jvm/java-11-openjdk-11.0.17.0.8-1.fc37.x86_64/lib/libawt_xawt.so

Con OpenJDK 11:

java -version

openjdk version “11.0.17” 2022-10-18
OpenJDK Runtime Environment (Red_Hat-11.0.17.0.8-1.fc37) (build 11.0.17+8)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.17.0.8-1.fc37) (build 11.0.17+8, mixed mode, sharing)

Solución:

Instalar Java 1.8 y usar esta versión para ejecutar Certifica.jar:

sudo dnf install java-1.8.0-openjdk.x86_64
sudo update-alternatives --config java (se selecciona la versión java-1.8.0-openjdk.x86_64)
java -jar Certifica.jar

Hola que tal, estoy intentando abrir certifica en una mac con intel, pero me sale el mismo error y no pude instalar otra versión de java.


@el-contadev-alan , por contestarte algo y no dejarte en el limbo:

Lo siento pero no damos soporte para mac, solo para :fedora:, pero el problema que tienes es que tu mac no utiliza el comando dnf ni el update-alternatives, debes buscar los comandos especificos para mac:

debes buscar:

  1. Como buscar las versiones de java? tal como brew search java
  2. Como instalar varias version de java?
  3. Como cambiar entre versiones?

por aqui podrias empezar → Cómo instalar Java en Mac de forma fácil y rápida, la parte Parte 2. Cómo instalar Java (OpenJDK) en Mac
o cambiar version de java → https://www.delftstack.com/es/howto/java/change-java-version-mac/

es lo maximo que puedo hacer por ti…

Saludos.,