
我正在嘗試在 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)
兩個問題:
- 是什麼導致了錯誤?
- 我可以在沒有原始程式碼的情況下解決這個問題嗎?
謝謝。
[編輯]
這是我的命令列:"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、第二步:
對於 Windows 7:
- 啟動“控制台”
- 點擊“預設程式”
- 點擊“將文件類型或協定與特定程式關聯”
- 按兩下。
- 瀏覽 C:\Program Files\Java\jre1.8.0_161\bin\javaw.exe
- 點擊按鈕打開
- 點選按鈕確定
3.最後一步:
轉變罐到EXE文件。無論如何你都需要JRE運行它,但它將 100% 可運行。此類轉換器有多種變體。以前我用過jar2exe。