java - не находит главный файл javaFX
Я скомпилировал через команду mvn clean javafx:run (во время компиляции проект запускается без ошибок), запаковал через mvn package, но у меня при запуске проекта вылетает ошибка:
PS D:\IdeaProjects\FilesEngine> java -cp ./target/FilesEngine-1.0-SNAPSHOT.jar com.example.filesengine.MainFile --module-path "D:\javafx-sdk-21.0.2\lib" --add-modules javafx.controls,javafx.fxml -jar ./target/FilesEngine-1.0-SNAPSHOT.jar
Error: Could not find or load main class com.example.filesengine.MainFile
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application
PS D:\IdeaProjects\FilesEngine>
если я запускаю через независимый к javaFX класс у меня вылетала ошибка NoClassDefFoundError:
PS D:\IdeaProjects\FilesEngine> java -cp ./target/FilesEngine-1.0-SNAPSHOT.jar com.example.filesengine.MainFile2 --module-path "D:\javafx-sdk-21.0.2\lib" --add-modules javafx.controls,javafx.fxml -jar ./target/FilesEngine-1.0-SNAPSHOT.jar
Exception in thread "main" java.lang.NoClassDefFoundError: javafx/application/Application
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
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:526)
at com.example.filesengine.MainFile2.main(MainFile2.java:5)
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:526)
... 10 more
PS D:\IdeaProjects\FilesEngine>
если запускать без -cp:
PS D:\IdeaProjects\FilesEngine> java --module-path "D:\javafx-sdk-21.0.2\lib" --add-modules javafx.controls,javafx.fxml -jar ./target/FilesEngine-1.0-SNAPSHOT.jar
no main manifest attribute, in ./target/FilesEngine-1.0-SNAPSHOT.jar
PS D:\IdeaProjects\FilesEngine>
Содержимое MainFile2:
package com.example.filesengine;
public class MainFile2 {
public static void main(String[] args) {
MainFile.main(args);
}
}
Ответы (1 шт):
Автор решения: adisteyf
→ Ссылка
Сам главный файл не читался, т. к. в нем импортировалась библиотека, которая не была указана в параметре --add-modules.