자바 프로그램 실행 중 오류 발생

자바 프로그램 실행 중 오류 발생

Windows 7에서 "ldraw2sunflow"라는 Java 애플리케이션을 사용하려고 합니다. 두 가지 3D 모델 형식 간에 변환합니다. 프로그램이 설명되어 있습니다여기. 어쨌든 처음 시도했을 때는 프로그램이 실행되었지만 이제는 실행이 중지되었습니다.

프로그램이 이상하니까가지다과거에는 제대로 작동했습니다.

오류는 다음과 같습니다.

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)

두 가지 질문:

  1. 오류의 원인은 무엇입니까?
  2. 소스코드 없이 이 문제를 해결할 수 있나요?

감사해요.

[편집하다]

내 명령줄은 다음과 같습니다."C:\Program Files\Java\jre1.8.0_161\bin\java.exe" -Xmx1G -jar "E:\Programs Windows\LDraw\LDraw2Sunflow_f\ldraw2sunflow.jar"

[편집하다]

regedit를 사용하여 "HKEY_USERS\S-1-5-21-2113055238-2099637611-63920502-1003\Software\JavaSoft\Prefs\org"를 삭제하면 프로그램이 다시 시작되므로 일종의 레지스트리 문제인 것 같습니다. 그런데 프로그램을 다시 시작하면 저장된 라이브러리 경로가 없어 다시 입력해야 합니다. (그리고 다시, 또 다시, 프로그램을 중지/시작할 때마다.)

실제 프로그램은 현재 다른 곳에서 실패하고 있습니다.

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)

답변1

알려진 Java 문제입니다.

1. 첫 번째 단계:

다음과 같이 프로그램을 실행한다면:

java -jar ldraw2sunflow.jar

다음과 같이 두 파일 모두에 전체 경로를 추가합니다.

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

2. 두 번째 단계:

윈도우 7의 경우:

  1. "제어판"을 시작하세요
  2. "기본 프로그램"을 클릭하세요.
  3. "파일 형식 또는 프로토콜을 특정 프로그램과 연결"을 클릭하십시오.
  4. 더블 클릭.항아리
  5. C:\Program Files\Java\jre1.8.0_161\bin\javaw.exe를 찾아보세요.
  6. 열기 버튼을 클릭하세요
  7. 확인 버튼을 클릭하세요

3. 마지막 단계:

전환하다항아리에게exe. 어쨌든 당신은 필요할 것입니다JRE실행하면 100% 실행 가능합니다. 이러한 변환기에는 다양한 변형이 있습니다. 이전에 내가 사용했던jar2exe.

관련 정보