Я создаю приложение Javafx с несколькими зависимостями, установленными через Maven. Одной из зависимостей является третья сторона (модифицированная версия org.llrp.ltk для RFID), которая не имеет публичного размещенного Maven Repo, поэтому я установил его локально. Это работает просто отлично, я могу не только проверить его правильно установлен, мой проект также правильно компилируется с зависимостью. Код с использованием классов этой зависимости также работает совершенно хорошо при выполнении из стандартного метода Main () в том же проекте. Однако, когда я называю его из кода приложения Javafx в том же проекте, я получаю эту ошибку:
Exception in thread "JavaFX Application Thread" java.lang.NoClassDefFoundError: org/llrp/ltk/net/LLRPEndpoint
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)
...
Caused by: java.lang.ClassNotFoundException: org.llrp.ltk.net.LLRPEndpoint
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)
... 56 more
< /code>
Приложение Javafx работает совершенно хорошо, в противном случае это происходит только тогда, когда я нажимаю кнопку, где действие выполняется с помощью одного из классов. Я запускаю приложение Javafx, используя плагин Maven через: < /p>
mvn javafx:run
< /code>
Локально установленное репо ссылается в моем pom.xml, как это: < /p>
org.openjfx
javafx-controls
${javafx.version}
org.testng
testng
7.11.0
test
org.testcontainers
testcontainers
1.19.3
test
org.testcontainers
junit-jupiter
1.19.3
test
org.testcontainers
postgresql
1.19.3
test
org.postgresql
postgresql
42.7.3
org.hibernate.orm
hibernate-core
6.6.13.Final
org.impinj.reader
reader-impinj
10.34.0
< /code>
Это раздел сборки для плагина Maven: < /p>
org.apache.maven.plugins
maven-compiler-plugin
3.11.0
21
org.openjfx
javafx-maven-plugin
0.0.8
com.example.App
run
com.example.App
debug
com.example.App
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:8000
< /code>
im использует Java 21 LTS с Javafx 21. Я попытался добавить некоторую дополнительную информацию о панели класса в разделе сборки pom.xml и добавив плагины зависимости Maven, но безрезультатно. Похоже, что только при запуске в качестве приложения Javafx эта третья сторона не включена в путь к классу - даже если это не вызывает ошибок компиляции. Кто -нибудь понимает, почему и как я могу это исправить?
Подробнее здесь: https://stackoverflow.com/questions/796 ... ed-repo-on