Невозможно создать объект vertx - PullRequest
0 голосов
/ 24 апреля 2018

У меня возникли проблемы при работе с vertx.Я занимаюсь разработкой под Windows, используя IntelliJ.Я просто пытаюсь создать объект vertx, как показано ниже: vertx vertx = Vertx.vertx().

При запуске int в Windows я получаю предупреждение о netty:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by io.netty.util.internal.ReflectionUtil (file:/C:/Users/souki/.m2/repository/io/netty/netty-common/4.1.19.Final/netty-common-4.1.19.Final.jar) to constructor java.nio.DirectByteBuffer(long,int)
WARNING: Please consider reporting this to the maintainers of io.netty.util.internal.ReflectionUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Но приложение этого не делаетостановись и работает нормально.Но по некоторым причинам я не могу протестировать свою программу на Windows и вынужден запускать ее на виртуальной машине Linux.

При запуске на виртуальной машине, как указано ниже java -jar myjar.jar, я получаю следующую ошибку:

Exception in thread "main" java.lang.NoClassDefFoundError: io/vertx/core/Vertx
        at Ecmg.main(Ecmg.java:16)
Caused by: java.lang.ClassNotFoundException: io.vertx.core.Vertx
        at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 1 more

Когда я удаляю Vertx vertx = Vertx.vertx();, все работает нормально.

Мой вопрос: почему я получаю эту ошибку в Linux?

Если вам интересно, вывод java -version для linux:

OpenJDK Runtime Environment (build 1.8.0_20-b26)
OpenJDK Server VM (build 25.20-b23, mixed mode)

Вот мой pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>JavaEcmg</groupId>
    <artifactId>JavaEcmg</artifactId>
    <version>1.0-SNAPSHOT</version>


    <dependencies>
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-core</artifactId>
            <version>3.5.1</version>
        </dependency>
    </dependencies>

</project>

О моей конфигурации Intellij:

enter image description here

enter image description here enter image description here

Заранее спасибо!

1 Ответ

0 голосов
/ 25 апреля 2018

Относительно предупреждений JVM: добро пожаловать в Java 9 и 10 :-) (но да, работает нормально)

Вы, вероятно, получаете ClassNotFoundException, потому что Jar сделан из просто ваш код классов.Попробуйте построить толстую банку, как в https://github.com/vert-x3/vertx-examples/tree/master/fatjar-examples

...