Fehler beim Ausführen des Java-Programms

Fehler beim Ausführen des Java-Programms

Ich versuche, eine Java-Anwendung unter Windows 7 namens "ldraw2sunflow" zu verwenden. Sie konvertiert zwischen zwei 3D-Modellformaten. Das Programm wird beschriebenHier. Wie dem auch sei, beim ersten Versuch lief das Programm, jetzt läuft es aber nicht mehr.

Das ist merkwürdig, denn das Programmhathat in der Vergangenheit einwandfrei funktioniert.

Hier ist der Fehler:

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)

Zwei Fragen:

  1. Was verursacht den Fehler?
  2. Kann ich dieses Problem beheben, ohne den Quellcode zu haben?

Danke.

[bearbeiten]

Hier ist meine Befehlszeile:"C:\Program Files\Java\jre1.8.0_161\bin\java.exe" -Xmx1G -jar "E:\Programs Windows\LDraw\LDraw2Sunflow_f\ldraw2sunflow.jar"

[bearbeiten]

Ich vermute, dass es sich um eine Art Registrierungsproblem handelt, denn wenn ich „HKEY_USERS\S-1-5-21-2113055238-2099637611-63920502-1003\Software\JavaSoft\Prefs\org“ mit regedit lösche, startet das Programm erneut. Allerdings fehlen die gespeicherten Bibliothekspfade, wenn ich das Programm neu starte, also muss ich sie erneut eingeben. (Und jedes Mal, wenn ich das Programm stoppe/starte, erneut und erneut.)

Das eigentliche Programm scheitert nun an anderer Stelle:

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)

Antwort1

Es ist ein bekanntes Java-Problem.

1. Erster Schritt:

Wenn Sie Ihr Programm wie folgt ausführen:

java -jar ldraw2sunflow.jar

fügen Sie den vollständigen Pfad zu beiden Dateien hinzu, etwa:

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

2. Zweiter Schritt:

Für Windows 7:

  1. Starten Sie die "Systemsteuerung"
  2. Klicken Sie auf „Standardprogramme“
  3. Klicken Sie auf „Einen Dateityp oder ein Protokoll einem bestimmten Programm zuordnen“
  4. Doppelklick.Krug
  5. Durchsuchen Sie C:\Program Files\Java\jre1.8.0_161\bin\javaw.exe
  6. Klicken Sie auf die Schaltfläche Öffnen
  7. Klicken Sie auf die Schaltfläche OK

3. Letzter Schritt:

KonvertierenKrugZuexe. Wie auch immer, Sie brauchenJREum es auszuführen, aber es wird 100% lauffähig sein. Es gibt viele Varianten solcher Konverter. Früher habe ichjar2exe.

verwandte Informationen