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

Various errors with openjdk 14.0.2 on win7x64 #56

Closed ComputerJock closed 3 years ago

ComputerJock commented 3 years ago

Environment info

Description

I found BlockMap while looking into TOGoS's Map Renderer which no longer works for Minecraft 1.13 and above. I've glad to see it being updated.

Now, I do not know Java -- I've only downloaded & installed the JRE from Oracle. I finally decided to upgrade from Java 10 and found all the business about the license changes. So I went to openjdk.java.net and downloaded what appears to be the latest version: 14.0.2. I tested this version with Minecraft and it worked with no problems I saw. It also worked fine with MultiMC and the fabric loader with all the mods I use.

Next I tried BlockMap (I ran this from an MSYS2 bash shell):

$ OpenJDK/jdk-14.0.2/bin/java -jar BlockMap-gui-2.1.0-windows.jar
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.

What appeared to be sort of a splash screen image appeared and then... nothing. I had to kill the process.

Next I tried:

$ OpenJDK/jdk-14.0.2/bin/java -jar BlockMap-cli-2.1.0.jar render -o Jeepers --create-tile-html "$APPDATA/.minecraft/saves/JeepersCreepers Backup"
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.gson.internal.reflect.UnsafeReflectionAccessor (file:/C:/Users/me/Desktop/BlockMap/BlockMap-cli-2.1.0.jar) to field java.util.Optional.value
WARNING: Please consider reporting this to the maintainers of com.google.gson.internal.reflect.UnsafeReflectionAccessor
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
20-07-26 08:46:25 INFO RegionRenderer [56] - Rendering region file 2 1
: :

It ran to completion, the tiles are rendered. It is a very large image. Is there a way to allow zooming in/out?

As BlockMap development seems to be in progress, I figured I'd let you know.

piegamesde commented 3 years ago

I found BlockMap while looking into TOGoS's Map Renderer which no longer works for Minecraft 1.13 and above. I've glad to see it being updated.

Hi, glad you found your way here :)

What appeared to be sort of a splash screen image appeared and then... nothing.

Really nothing? No window, no error messages no logs? That's weird. Can you please try again with OpenJDK/jdk-14.0.2/bin/java -jar BlockMap-gui-2.1.0-windows.jar -v?

Next I tried: […] It ran to completion, the tiles are rendered. It is a very large image. Is there a way to allow zooming in/out?

No, sadly not. The main usage of the command line is to create tiled images of Minecraft world regions, not displaying them. The --create-tile-html generated html file is more an example of what can be done with those images, in fact it's one of the few relics that are left over from the original TMCMR. For interactive map viewing, it's probably the GUI you want (the first thing you tried).

P.S.: You can use backticks (`) to mark code blocks and log snippets, this greatly increases the readability of the generated html. https://docs.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax#quoting-code

ComputerJock commented 3 years ago

Thank you for your reply.

Msys2 is a mostly posix layer on top of windows -- I have not had problems in the past invoking a pure-windows EXE via the bash shell. There is some behind the scenes stuff going on with the command line. For instance all forward slashes are converted to backwards slashes. FYI, I have attached the screenshot of my running your requested command line.

screen

I see the block-globe and that was it. No mouse clicking worked nor did any keystrokes that I could tell.

Anyway, I decided to try it again using CMD.EXE. It worked. There was still what looked to me (total Java ignorance) a serious error however the GUI came up and I was able to select a 1.14.4 world and render it.

output.txt

Bottom line: the problem was on my end -- user error. there is some issue with my using Msys2 & bash to invoke java and Blockmap. I doubt that you're interested but now you know.

Thank you for bringing the program up-to-date.

With respect to zooming, I've used a program called MapCrafter (https://github.com/mapcrafter/mapcrafter) but, unfortunately, the author has no time to continue development. That program uses Leaflet (https://leafletjs.com/) to create a google-map interface to the render. Leaflet allows zooming. If you are interested, perhaps you could look into using that with the --create-tile-html option.

piegamesde commented 3 years ago

I'll close this as it isn't a real BlockMap issue. Nevertheless, I'm still intrigued by this. I reckon this is some problem with GTK or whatever backend JavaFX is using on this platform. Maybe you could try other GTK applications in this environment and see if they work?


Regarding the log messages, the exceptions are logged with WARN and thus are not critical to the operation of the software. But they tell that caching is broken on Windows due to permission issues, which is a separate issue worth examining.