-
Notifications
You must be signed in to change notification settings - Fork 434
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Debian 12 - OpenJDK 17 (default VM) missing Nashorn #1793
Comments
This is known. To run the game, you will either need to use a version of Java which includes the required dependencies, or compile it yourself. There is a tutorial for compilation in the root of this repo, or you can join the discord for further help. Technically, the only officially supported version is Java 1.8.0_172. Other versions do work, but are considered at-your-own-risk and may require additional effort. |
Not familiar with Java, but nashorn is a JavaScript engine embedded in Java in version 8, but was removed in version 11. |
Nashorn should be included in the release JARs since #1684, but it looks like the JARs Inno uploads to Google Drive and MEGA aren't built through the release pipeline or through Maven, so they're missing both Nashorn and JFX. |
Inno doesn't use Github workflows or Maven, those were added by the community |
I don't know the purpose of the SVGO link in the pom.xml, but SVGO and Node.js are not actually used by the game at all; it's an entirely manual process. The svgo configuration in the repo root is simply provided as the standard optimization settings for using SVGO on any svg images. The Nashorn engine is used in UtilText.java, where you can find the imports: import jdk.nashorn.api.scripting.NashornScriptEngine;
import jdk.nashorn.api.scripting.NashornScriptEngineFactory;
// Use the following imports when using the org.openjdk.nashorn dependency:
//import org.openjdk.nashorn.api.scripting.NashornScriptEngine;
//import org.openjdk.nashorn.api.scripting.NashornScriptEngineFactory; And this is used to perform dialog parsing. There has been some investigation into upgrading to the Graal engine, the new native javascript engine, but as I understand it, there are several significant differences that would need to be overcome. |
Describe the bug
I recently upgraded from Linux Debian 11 to Debian 12 and so did the Java VM, now the game fails to run completely with error.log mentioning "Caused by: java.lang.NoClassDefFoundError: jdk/nashorn/api/scripting/NashornScriptEngineFactory"
Expected behavior
Game should been starting up at the least.
To Reproduce
Install the default VM on a Linux Debian 12
java --version
openjdk 17.0.8 2023-07-18
OpenJDK Runtime Environment (build 17.0.8+7-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.8+7-Debian-1deb12u1, mixed mode, sharing)
Attach files
Please either attach a copy of your error.log (in the LilithsThrone/data directory), or copy & paste the contents to the end of this bug report.
If applicable, add screenshots to help explain your problem.
Additional information:
error.log
All sources on the intenet mention the Nashorn has been deprecated since Java version 11 and finally removed since Java version 15.
The text was updated successfully, but these errors were encountered: