superzanti / ServerSync

Sync files between client and server for Minecraft Forge
GNU General Public License v3.0
160 stars 26 forks source link

Exception in thread "Thread-0" java.lang.NoClassDefFoundError: javafx/application/Application (Client Error) #292

Closed vgster closed 2 years ago

vgster commented 2 years ago

Serversync Version: 4.2.0

Minecraft Version: 1.18.1 (Fabric 0.13.1)

Issue: The client won't launch via .bat or double-click. The server launches fine but I can't test its functionality due to the issues with the client. I created a batch file to see the errors I'm getting. I've tried running the client without having the server running, rebooting the computer, installing standalone javafx 17.0.2 SDK, reinstalling the 17.0.2 JDK, running jarfix.exe downloaded from loefflmann.net, and deleting cached applications in java configuration. Apologies if this is a simple fix that I can't understand.

Logs

.bat contents:
```
java -jar serversync-4.2.0.jar
pause
```

Command Prompt output:
```
X:\MultiMC\instances\Fabric1.18.1\.minecraft>java -jar serversync-4.2.0.jar
[Feb 12, 2022 1:54:53][ServerSync] INFO: Root dir: X:\MultiMC\instances\Fabric1.18.1\.minecraft
[Feb 12, 2022 1:54:53][ServerSync] INFO: Running version: v4.2.0
[Feb 12, 2022 1:54:53][ServerSync] INFO: Loading language file: en_US
Exception in thread "Thread-0" java.lang.NoClassDefFoundError: javafx/application/Application
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
        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:520)
        at com.superzanti.serversync.GUIJavaFX.GUI_Launcher.run(GUI_Launcher.java:9)
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        ... 10 more

X:\MultiMC\instances\Fabric1.18.1\.minecraft>pause
Press any key to continue . . .
```
vgster commented 2 years ago

I've addressed the issue. Add -o to the end of the .bat file.

java -jar serversync-4.2.0.jar -o
pause
rheimus commented 2 years ago

For information, this will be due to javafx being missing from your java install.

This is pretty common for a lot of distros.

-o resolves it as it stops the UI from loading, so javafx is never used.