piegamesde / BlockMap

An out-of-game map renderer and viewer for Minecraft 1.13–1.18 worlds [unmaintained]
MIT License
92 stars 22 forks source link

BlockMap failed to start #87

Open Peregrine05 opened 1 year ago

Peregrine05 commented 1 year ago

Environment info

Description

After running the command to start BlockMap, (java -jar BlockMap-gui-2.4.1-windows.jar), the startup image appears for a short time. Then an error is output to the terminal window, and the program exits without finishing the startup process.

Steps to reproduce

  1. Run the command, java -jar BlockMap-gui-2.4.1-windows.jar.

Actual result

When the command to start BlockMap is run, the startup image appears for a short time. Then an error (displayed below) is output to the terminal window, and BlockMap exits without finishing the startup process.

Sep 09, 2022 8:02:43 PM com.sun.javafx.application.PlatformImpl startup
WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed mod
ule @4e7dec40'
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impac
t performance.
22-09-09 20:02:46 INFO  RegionFolderCache [73] - Removed 0 worlds from cache
22-09-09 20:02:46 WARN  RegionFolderCache [79] - Could not initialize cache
java.nio.file.AccessDeniedException: C:\Users\JOSIAH\AppData\Local\piegames\bloc
kmap\cache\regions\cache.json
        at sun.nio.fs.WindowsException.translateToIOException(WindowsException.j
ava:89) ~[?:?]
        at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.jav
a:103) ~[?:?]
        at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.jav
a:108) ~[?:?]
        at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystem
Provider.java:236) ~[?:?]
        at java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvid
er.java:484) ~[?:?]
        at java.nio.file.Files.newOutputStream(Files.java:228) ~[?:?]
        at java.nio.file.Files.newBufferedWriter(Files.java:3008) ~[?:?]
        at java.nio.file.Files.newBufferedWriter(Files.java:3056) ~[?:?]
        at de.piegames.blockmap.gui.standalone.RegionFolderCache.<init>(RegionFo
lderCache.java:74) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at de.piegames.blockmap.gui.standalone.GuiController.<init>(GuiControlle
r.java:120) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Nativ
e Method) ~[?:?]
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Native
ConstructorAccessorImpl.java:77) ~[?:?]
        at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(De
legatingConstructorAccessorImpl.java:45) ~[?:?]
        at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:
499) ~[?:?]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?
]
        at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:
939) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FX
MLLoader.java:981) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:23
0) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.ja
va:755) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2808) ~[Bl
ockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2634) ~[BlockMap-gui-
2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548) ~[BlockMap-gui-
2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2516) ~[BlockMap-gui-2.4.
1-windows.jar:?]
        at de.piegames.blockmap.gui.standalone.GuiMain.init(GuiMain.java:46) ~[B
lockMap-gui-2.4.1-windows.jar:?]
        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherIm
pl.java:825) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(La
uncherImpl.java:196) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at java.lang.Thread.run(Thread.java:833) [?:?]
22-09-09 20:02:47 FATAL GuiMain [50] - Cannot start BlockMap
javafx.fxml.LoadException:
file:/C:/Users/JOSIAH/AppData/Local/Programs/BlockMap/BlockMap-gui-2.4.1-windows
.jar!/de/piegames/blockmap/gui/standalone/scene.fxml:21

        at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2707) ~
[BlockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:
944) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FX
MLLoader.java:981) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:23
0) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.ja
va:755) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2808) ~[Bl
ockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2634) ~[BlockMap-gui-
2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548) ~[BlockMap-gui-
2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2516) ~[BlockMap-gui-2.4.
1-windows.jar:?]
        at de.piegames.blockmap.gui.standalone.GuiMain.init(GuiMain.java:46) ~[B
lockMap-gui-2.4.1-windows.jar:?]
        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherIm
pl.java:825) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(La
uncherImpl.java:196) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.reflect.InvocationTargetException
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Nativ
e Method) ~[?:?]
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Native
ConstructorAccessorImpl.java:77) ~[?:?]
        at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(De
legatingConstructorAccessorImpl.java:45) ~[?:?]
        at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:
499) ~[?:?]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?
]
        at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:
939) ~[BlockMap-gui-2.4.1-windows.jar:?]
        ... 11 more
Caused by: java.nio.file.InvalidPathException: Illegal char <:> at index 2: ?C:\
Users\JOSIAH\AppData\Roaming\piegames\blockmap\config
        at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182) ~[
?:?]
        at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153) ~[?:?]

        at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) ~[?:?]
        at sun.nio.fs.WindowsPath.parse(WindowsPath.java:92) ~[?:?]
        at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:232) ~[?:
?]
        at java.nio.file.Path.of(Path.java:147) ~[?:?]
        at java.nio.file.Paths.get(Paths.java:69) ~[?:?]
        at de.piegames.blockmap.gui.standalone.HistoryManager.<init>(HistoryMana
ger.java:46) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at de.piegames.blockmap.gui.standalone.GuiController.<init>(GuiControlle
r.java:121) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Nativ
e Method) ~[?:?]
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Native
ConstructorAccessorImpl.java:77) ~[?:?]
        at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(De
legatingConstructorAccessorImpl.java:45) ~[?:?]
        at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:
499) ~[?:?]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?
]
        at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:
939) ~[BlockMap-gui-2.4.1-windows.jar:?]
        ... 11 more

Expected result:

The program should start normally, as the instructions in the README state.

Screenshots

The error is too long to display with a screenshot. Everything else that I have described should be understandable without screenshots.

Debug log

The debug log as produced with the -v argument is below.

Sep 09, 2022 8:03:26 PM com.sun.javafx.application.PlatformImpl startup
WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed mod
ule @4e7dec40'
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impac
t performance.
22-09-09 20:03:29 INFO  RegionFolderCache [73] - Removed 0 worlds from cache
22-09-09 20:03:29 FATAL GuiMain [50] - Cannot start BlockMap
javafx.fxml.LoadException:
file:/C:/Users/JOSIAH/AppData/Local/Programs/BlockMap/BlockMap-gui-2.4.1-windows
.jar!/de/piegames/blockmap/gui/standalone/scene.fxml:21

        at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2707) ~
[BlockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:
944) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FX
MLLoader.java:981) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:23
0) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.ja
va:755) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2808) ~[Bl
ockMap-gui-2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2634) ~[BlockMap-gui-
2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548) ~[BlockMap-gui-
2.4.1-windows.jar:?]
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2516) ~[BlockMap-gui-2.4.
1-windows.jar:?]
        at de.piegames.blockmap.gui.standalone.GuiMain.init(GuiMain.java:46) ~[B
lockMap-gui-2.4.1-windows.jar:?]
        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherIm
pl.java:825) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(La
uncherImpl.java:196) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.reflect.InvocationTargetException
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Nativ
e Method) ~[?:?]
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Native
ConstructorAccessorImpl.java:77) ~[?:?]
        at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(De
legatingConstructorAccessorImpl.java:45) ~[?:?]
        at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:
499) ~[?:?]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?
]
        at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:
939) ~[BlockMap-gui-2.4.1-windows.jar:?]
        ... 11 more
Caused by: java.nio.file.InvalidPathException: Illegal char <:> at index 2: ?C:\
Users\JOSIAH\AppData\Roaming\piegames\blockmap\config
        at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182) ~[
?:?]
        at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153) ~[?:?]

        at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) ~[?:?]
        at sun.nio.fs.WindowsPath.parse(WindowsPath.java:92) ~[?:?]
        at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:232) ~[?:
?]
        at java.nio.file.Path.of(Path.java:147) ~[?:?]
        at java.nio.file.Paths.get(Paths.java:69) ~[?:?]
        at de.piegames.blockmap.gui.standalone.HistoryManager.<init>(HistoryMana
ger.java:46) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at de.piegames.blockmap.gui.standalone.GuiController.<init>(GuiControlle
r.java:121) ~[BlockMap-gui-2.4.1-windows.jar:?]
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Nativ
e Method) ~[?:?]
        at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Native
ConstructorAccessorImpl.java:77) ~[?:?]
        at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(De
legatingConstructorAccessorImpl.java:45) ~[?:?]
        at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:
499) ~[?:?]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?
]
        at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:
939) ~[BlockMap-gui-2.4.1-windows.jar:?]
        ... 11 more
piegamesde commented 1 year ago

Interestingly enough, you both logs show different error messages each. The first one says "AccessDeniedException: C:\Users\JOSIAH\AppData\Local\piegames\bloc kmap\cache\regions\cache.json" and the second one is "InvalidPathException: Illegal char <:> at index 2: ?C:\ Users\JOSIAH\AppData\Roaming\piegames\blockmap\config"

Please have a look after these paths. Do they exist? (Do they look correct?) Are they accessible as a user?

Peregrine05 commented 1 year ago

I notice that both debug logs contain the InvalidPathException, while only the first one contains the AccessDeniedException.

"C:\Users\JOSIAH\AppData\Local\piegames\blockmap\cache\regions\cache.json" (I changed the file extension to txt to make GitHub accept the upload) had been created by the program, and is accessible.

"C:\Users\JOSIAH\AppData\Roaming\piegames\blockmap\config" had not been created by the program, but it is accessible after I create it. The program fails to start with the same error even after creation of the folder.

piegamesde commented 1 year ago

I just notice that you are still on Windows 7. It is EOL, so please try to reproduce this issue on a more recent system. Note that I only have a Windows 10 VM myself for testing.

Peregrine05 commented 1 year ago

The GUI version of the program works normally on Linux Mint. So far, the command line version of the program appears to work on Windows 7.