Java.lang.noclassdeffounderror в среде выполнения для класса местного установленного репо, только когда вызов в приложенJAVA

Программисты JAVA общаются здесь
Anonymous
Java.lang.noclassdeffounderror в среде выполнения для класса местного установленного репо, только когда вызов в приложен

Сообщение Anonymous »

Я создаю приложение 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

Вернуться в «JAVA»