Error al ejecutar el programa java

Error al ejecutar el programa java

Estoy intentando utilizar una aplicación Java en Windows 7 llamada "ldraw2sunflow". Convierte entre dos formatos de modelos 3D. El programa se describeaquí. De todos modos, el programa se ejecutó la primera vez que lo probé, pero ahora deja de ejecutarse.

Esto es extraño porque el programatienefuncionó correctamente en el pasado.

Aquí está el error:

Jan 31, 2018 3:27:49 PM java.util.prefs.WindowsPreferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(...) returned error code 5.
Jan 31, 2018 3:27:49 PM org.ldraw2sunflow.ui.Ldraw2Sunflow <init>
INFO: en_US
Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException
: String index out of range: -1
        at java.lang.String.substring(Unknown Source)
        at org.ldraw2sunflow.util.PartFinder.loadColor(PartFinder.java:274)
        at org.ldraw2sunflow.util.PartFinder.setLDRAWDIR(PartFinder.java:172)
        at org.ldraw2sunflow.ui.impl.LDrawPanel.initPreferences(LDrawPanel.java:122)
        at org.ldraw2sunflow.ui.impl.LDrawPanel.<init>(LDrawPanel.java:47)
        at org.ldraw2sunflow.ui.Ldraw2Sunflow.<init>(Ldraw2Sunflow.java:80)
        at org.ldraw2sunflow.ui.Ldraw2Sunflow.lambda$main$10(Ldraw2Sunflow.java:114)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$500(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

Dos preguntas:

  1. ¿Qué está causando el error?
  2. ¿Puedo solucionar este problema sin tener el código fuente?

Gracias.

[editar]

Aquí está mi línea de comando:"C:\Program Files\Java\jre1.8.0_161\bin\java.exe" -Xmx1G -jar "E:\Programs Windows\LDraw\LDraw2Sunflow_f\ldraw2sunflow.jar"

[editar]

Sospecho que es algún tipo de problema de registro, ya que cuando elimino "HKEY_USERS\S-1-5-21-2113055238-2099637611-63920502-1003\Software\JavaSoft\Prefs\org" usando regedit, el programa se iniciará de nuevo. Sin embargo, las rutas de la biblioteca almacenada faltan cuando reinicio el programa, por lo que tengo que escribirlas nuevamente. (Y una y otra vez, y otra vez, cada vez que paro o inicio el programa).

El programa real está fallando en otro lugar ahora:

Exception in thread "Thread-4" java.lang.UnsatisfiedLinkError: no lwjgl in java.
library.path
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at org.lwjgl.LWJGLUtil.loadLibrarySystem(LWJGLUtil.java:337)
        at org.lwjgl.Sys.<clinit>(Sys.java:29)
        at org.ldraw2sunflow.lwjgl.PreviewOpenGL.run(PreviewOpenGL.java:160)
        at org.ldraw2sunflow.ui.impl.RenderPanel.convertFile(RenderPanel.java:11
7)
        at org.ldraw2sunflow.ui.impl.RenderPanel.access$000(RenderPanel.java:61)

        at org.ldraw2sunflow.ui.impl.RenderPanel$1.run(RenderPanel.java:85)

Respuesta1

Es un problema conocido de Java.

1. Primer paso:

Si ejecuta su programa de esta manera:

java -jar ldraw2sunflow.jar

agregue la ruta completa a ambos archivos, algo como:

/usr/java/<version>/bin/java -jar /home/<username>/Downloads/ldraw2sunflow.jar

2. Segundo paso:

Para Windows 7:

  1. Iniciar "Panel de control"
  2. Haga clic en "Programas predeterminados"
  3. Haga clic en "Asociar un tipo de archivo o protocolo con un programa específico"
  4. Haga doble clic.frasco
  5. Busque C:\Archivos de programa\Java\jre1.8.0_161\bin\javaw.exe
  6. Haga clic en el botón Abrir
  7. Haga clic en el botón Aceptar

3. Último paso:

Convertirfrascoaexe. De todos modos necesitarásJREpara ejecutarlo, pero será 100% ejecutable. Existen muchas variantes de este tipo de convertidores. Antiguamente usabajar2exe.

información relacionada