Quackster / Kepler

A server created in Java designed to revive Habbo Hotel v14 from the 2007 era.
GNU General Public License v3.0
230 stars 60 forks source link

Error on 1.41 #46

Closed Alex-Habbz closed 1 year ago

Alex-Habbz commented 1 year ago

When trying to start server I get the following error on 1.41, no issue on 1.4. Using java 17.

This error happens on Ubuntu, my server VPS using java 17:

Error: Could not find or load main class org.alexdev.kepler.Kepler Caused by: java.lang.ClassNotFoundException: org.alexdev.kepler.Kepler

In Arch Linux, my main computer I get a different error using java 18:

Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes at java.base/sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:340) at java.base/sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:282) at java.base/java.util.jar.JarVerifier.processEntry(JarVerifier.java:283) at java.base/java.util.jar.JarVerifier.update(JarVerifier.java:239) at java.base/java.util.jar.JarFile.initializeVerifier(JarFile.java:762) at java.base/java.util.jar.JarFile.ensureInitialization(JarFile.java:1033) at java.base/java.util.jar.JavaUtilJarAccessImpl.ensureInitialization(JavaUtilJarAccessImpl.java:72) at java.base/jdk.internal.loader.URLClassPath$JarLoader$2.getManifest(URLClassPath.java:888) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:848) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:488) at java.base/java.lang.Class.forName(Class.java:467) at java.base/sun.launcher.LauncherHelper.loadMainClass(LauncherHelper.java:790) at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:685)

Quackster commented 1 year ago

Fixed with commit: https://github.com/Quackster/Kepler/commit/334f75e757e08e1227e9c4cf6ab83e5652d8f66d

Try the latest release: https://github.com/Quackster/Kepler/releases

Also please reply back to your open issues otherwise I will close them due to inactivity.

Alex-Habbz commented 1 year ago

New error now:

no main manifest attribute, in kepler.jar

Quackster commented 1 year ago

I do not know what you're talking about, running run.bat or run.sh on Linux works fine for me.

Alex-Habbz commented 1 year ago

I have the kepler.jar and lib folder aswell as the settings file etc then I do java -jar kepler.jar from the terminal and get that error, haven't had any issues with previous versions. Using ubuntu java 17.

Edit, I know why, its because you included the classpath etc in the sh file whereas im using the terminal command to start it. Ill probably wait then until all those libs are compiled in the jar file as I run the server on systemctl.

Quackster commented 1 year ago

It is never going to be a single jar file again, if you read the commit message on the pre-release, the reason is that Bouncycastle requires its own jar to be signed - as it is a cryptography library and is for security purposes, and placing all the libraries into a single jar will destroy the signature.

Bouncycastle is a new dependency as I moved to a native Java implementation of Argon2id.

Run the run.bat (Windows) or run.sh (Linux).

Alex-Habbz commented 1 year ago

Ok no worries, thanks, ill sort it out on my server then.