Ошибка JNI, проверьте свою установку и повторите попытку [дублировать]

Если вы ищете решение Multimaster PostgreSQL (которое позволяет изменять данные на любом узле, а модификация реплицируется на другой узел), еще нет встроенного решения.

Вы можете использовать расширения, такие как BDR 2ndQuadrant's (но для этого требуется модифицированный сервер PostgreSQL) или проприетарные решения, такие как сервер репликации Enterprise Edition xDB .

Существует также с открытым исходным кодом fork Postgres-XL , который предоставляет другое решение.

17
задан Jash Parekh 13 March 2014 в 16:09
поделиться

24 ответа

Краткий ответ: щелкните правой кнопкой мыши на классе, который содержит основной метод. Нажмите «Запустить как». Нажмите «Приложение Java». Комбинация клавиш: Shift + Alt + XJ (удерживая Shift и Alt, нажмите X, затем отпустите Shift и Alt и нажмите J).

Длинный ответ: честно говоря, я не уверен на 100% почему эта проблема возникает. Возможно, это связано с использованием другого jdk. Я столкнулся с такой же ошибкой. Решение было проще, чем я себе представлял. Я был использован для запуска моего кода с помощью Ctrl + F11. Но когда я запускал его как приложение Java (как я описал в «коротком ответе»), проблема была решена. Я не уверен, что он решает проблемы других народов, но стоит попробовать. :)

15
ответ дан Navid Vafaei 22 August 2018 в 11:19
поделиться
  • 1
    Ваш короткий ответ помог. Только мне нужно написать новое имя приложения и выбрать мою главную функцию, содержащую класс. Он работал как шарм. – Jaffer Wilson 4 February 2017 в 15:12
  • 2
    Как вы разрешаете ошибку, если java-файл является частью проекта android на студии Android – ubuntu_noob 2 June 2018 в 10:33

отредактируйте «.classpath» и включите ниже тег

<classpathentry kind="con" path="org.testng.TESTNG_CONTAINER"/>

, это может решить вашу проблему.

0
ответ дан Bheemashankar Pattar 22 August 2018 в 11:19
поделиться

Моя проблема исходила из попытки отключить природу Maven из моего проекта и затем удалить файл pom.xml. Это плохо, очень плохо, не делайте этого. Если вы это сделаете, измените его на проект Maven и, надеюсь, вы сможете либо восстановить старый файл pom.xml, либо создать новый. Как только я это сделал, он снова работал.

EDIT: Недавно я снова столкнулся с этой проблемой, и на этот раз это произошло потому, что у меня были дубликаты библиотек в моем пути к классам. Один добавленный Maven (который начался с / M2_REPO / .... и затем один, который я добавил (чего я не должен был делать). Несмотря на то, что Eclipse сообщал, что он не может найти класс, фактическая проблема заключалась в том, что я если у него две библиотеки с тем же классом, и он не знал, какой из них использовать. Как только я удалил вторую ссылку, она сработала.

0
ответ дан Chris C 22 August 2018 в 11:19
поделиться

У меня были подобные проблемы при использовании «java» в начале имени пакета, например. java.jem.pc

Проверьте вывод консоли, я получаю: Исключение в потоке «main» java.lang.SecurityException: Запрещено имя пакета: java.jem.pc

6
ответ дан CoDeSigns 22 August 2018 в 11:19
поделиться
  • 1
    Работала отлично в моем случае ... Я использовал пакет java, теперь обновлен и нашел работу. благодаря – Sankumarsingh 2 November 2017 в 15:00

На моей консоли не было информации, поэтому я отправил на поиски дополнительных решений и нашел их - уникальные решения, представленные здесь. Я столкнулся с этим с Eclipse Oxygen, пытающимся запустить старую Ant для проекта.

Причина 1 Я настроил Eclipse для использования внешней установки Ant, которая была версией 1.10.2, которая, по-видимому, имела в ней классы, которые были скомпилированный с JDK 9. В Eclipse я получил описанную выше ошибку JNI (запуск сборки Ant в командной строке дал мне известную «неподдерживаемую ошибку версии major.minor» - Java, которую я использовал в системе, был JDK 8).

Решение заключалось в откате во встроенную версию Eclipse Ant, являющейся 1.10.1. Я подтвердил это как правильное решение, загрузив Ant 1.10.1 отдельно и переконфигурировав Eclipse, чтобы использовать новый 1.10.1 извне, и он все еще работал.

Причина 2 Это также может произойти, если у вас установлены параметры времени выполнения Ant неправильно настроен в настройках Eclipse. В зависимости от версии Ant вы работаете, вам нужно добавить tools.jar из соответствующего JDK в путь класса, используемый для Ant Runtime (Home Entries). Более конкретно, без надлежащей конфигурации Eclipse будет жаловаться при запуске цели Ant, что версия JRE меньше определенной требуемой версии.

По сути, «правильная настройка» означает выравнивание каждого из элементов конфигурации в Eclipse для запуска Ant, чтобы все они работали вместе. Это включает запись Ant Runtime Home (должна указывать на версию Ant, совместимую с вашим выбранным JDK), вы не можете запустить Ant с JDK 8, когда он был скомпилирован против JDK 9); указав tools.jar, который принадлежит JDK, который вы хотите запустить Ant в настройках Ant Runtime; и, наконец, установить среду JRE вашего скрипта сборки для JDK, который вы хотите запустить Ant в настройке внешних инструментов. Все 3 из этих настроек должны согласиться, чтобы избежать ошибки, описанной выше. Вам также необходимо будет учитывать атрибуты, используемые в тэге javac, чтобы гарантировать, что JDK, который вы используете, способен выполнять, как вы указали (например, JDK 7 не может скомпилировать код с использованием исходной и целевой версии 8).

Более того, если вы действительно пытаетесь запустить скрипт сборки Ant для компиляции кода для более старого JDK (например, менее 8 для Oxygen), эта статья помогла получить доступ к запуску Ant против старше JDK . Существуют версии Ant plugin для нескольких версий Eclipse, инструкции краткие и правильная версия плагина для вашего Eclipse важна.

Или проще вы можете использовать это очень хорошее решение , чтобы выполнить вашу устаревшую компиляцию , которая не требует замены плагина Eclipse, но вместо этого изменит тэг javac в вашем скрипте сборки (при использовании последнего JDK).

0
ответ дан dan 22 August 2018 в 11:19
поделиться

В моем случае проблема была вызвана версией JDK. Чтобы решить эту проблему, я предлагаю перейти в ваш файл pom и проверить <jdk.version>1.7</jdk.version>.

. После этого проверьте java-версию в вашем cmd (windows) или терминале (OSX или LINUX), введя: java -version.

Сравните версию, показанную в командной строке терминала \ с тем, что у вас есть в вашем файле pom. Убедитесь, что они одинаковые. Затем запустите проект еще раз.

3
ответ дан DvixExtract 22 August 2018 в 11:19
поделиться

Это может произойти, если версия JDK отличается.

попробуйте это с помощью maven:

<properties>
    <jdk.version>1.8</jdk.version>
</properties>

в build-> плагинах:

<plugin>

    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <source>${jdk.version}</source>
        <target>${jdk.version}</target>
    </configuration>

</plugin>
1
ответ дан erank 22 August 2018 в 11:19
поделиться

Надеюсь, это поможет кому-то другому. Я страдал этим, работая над проектом несколько лет назад, а затем работа над новым проектом начиналась неудачно несколько дней назад. Я нашел этот пост и пытался вспомнить, что я изменил в своем проекте, а затем я вспомнил, что я изменил свой maven pom и удалил запись для maven-jar-plugin. Когда вы создаете банку, цель которой должна быть исполняемой, вам нужно включить ее, чтобы некоторые записи записывались в манифест. Я открыл старый проект, скопировал эту запись (с некоторыми изменениями для названия проекта), и она сработала.

0
ответ дан Eric Forte 22 August 2018 в 11:19
поделиться

Я столкнулся с аналогичной проблемой и получил решение в названии пакета. Я сохранил имя пакета как java.basics. В консоли я получил намек на это, так как ясно сказано, что имя запрещенного пакета. Поэтому я изменил имя пакета, и оно сработало.

0
ответ дан H S Rathore 22 August 2018 в 11:19
поделиться

Я столкнулся с той же ошибкой, когда добавляю в мой проект следующую зависимость maven:

<artifactId>aws-encryption-sdk-java</artifactId>

Ошибка возникла только тогда, когда я запустил файл jar-тени, созданный maven-shade- плагин. Я смог преодолеть ошибку, используя банку, созданную maven-assembly-plugin.

0
ответ дан Ioannis Tsiokos 22 August 2018 в 11:19
поделиться

В Netbeans 8.0.2:

  1. Щелкните правой кнопкой мыши на вашем пакете.
  2. Выберите «Свойства».
  3. Перейдите к опции «Выполнить» .
  4. Выберите основной класс, просмотрев имя вашего класса.
  5. Нажмите кнопку «Ok».
-1
ответ дан Jenny O'Reilly 22 August 2018 в 11:19
поделиться

Проверьте консоль. В нем говорится об ошибке java.lang.SecurityException. Измените свое имя пакета. Я изменил имя пакета с «java.assessment» на «assesment», и это сработало для меня. Если кто-то знает основную причину, сообщите мне.

1
ответ дан Keshav Bisarwal 22 August 2018 в 11:19
поделиться

Программы, написанные на одной версии jdk, не будут поддерживать платформу JNI другой версии jdk. Если в случае использования jdk10 и jdk8, eclipse настроен для jdk10 и кода, написанного на jdk10. Теперь я не хочу использовать jdk10 и начал использовать jdk8 как jvm и пытался запустить код, написанный на jdk10, поэтому eclipse будет проходить через ошибку JNI. Итак, чтобы выйти из этой ошибки, добавьте текущий путь JVM к файлу eclipse.ini, после этого скопируйте написанный код в буфер обмена и удалите проект в eclipse и создайте новый проект и проверьте скопированный код и запустите.

0
ответ дан Kuber Pujar 22 August 2018 в 11:19
поделиться

Вы можете попробовать: щелкните правой кнопкой мыши по проекту, а затем нажмите «Очистить». После этого запустите проект.

Он работает для меня.

0
ответ дан lupin 22 August 2018 в 11:19
поделиться

Столкнулась с той же проблемой в Netbeans 8.0.2. Clean and Build Project решил эту проблему.

0
ответ дан Michu93 22 August 2018 в 11:19
поделиться

Вы можете сначала проверить консоль, чтобы увидеть фактическое сообщение об ошибке, а затем продолжить поиск ответов на эту ошибку.

Моя консоль показывает ошибку NoClassDefFound для класса jcommander. Вероятно, ваша ошибка будет отличаться от моей. Причина моей ошибки в том, что класс jcommander не находится в моем репозитории M2, поэтому мне просто нужно добавить эту зависимость в мой pom.xml. Вы можете проверить, все ли все зависимые классы объявлены и добавлены в текущую конфигурацию конфигурации и проекта.

NoClassDefFoundError

1
ответ дан Miguel Ormita 22 August 2018 в 11:19
поделиться

Я думаю, это происходит потому, что имя вашего класса является тем же именем другого класса в JDK. Помогите затмению определить, какой из них вы пытаетесь запустить, выбрав пакет, в котором находится ваш класс. Переход к конфигурации запуска выбирает проект и основной класс.

Когда вы нажимаете кнопку поиска, чтобы выбрать основной класс, вы найдете варианты с таким же именем, но с другим пакетом, выберите свой класс.

0
ответ дан Mohamed Abdelmagid 22 August 2018 в 11:19
поделиться

ВОЗМОЖНОЕ РЕШЕНИЕ Если NONE из этих решений сработало для вас, попробуйте это ... Я, наконец, получил свою работу, удалив две папки «.metadata» & amp; «.recommenders» в папке рабочего пространства. Вы можете найти свой путь к папке рабочей области, щелкнув «Файл»> «Переключить рабочее пространство»> «Другое» в панели инструментов приложения Eclipse.

Теперь я полный noob, плачущий мой путь через степень SE в Сан Хосе. Поэтому я просто делюсь тем, что сработало для меня, не зная о том, почему именно. Я не знаю, какой вред или головные боли, или даже если обе вышеупомянутые папки необходимо удалить. Но, в конце концов, это сработало для меня, и кажется, что приложение просто обновляет новые версии этих папок в любом случае.

0
ответ дан Muhammad Soroya 22 August 2018 в 11:19
поделиться

Все не работает для меня, но как только я удалю «.metadata» & amp; «.recommenders» рабочей области, а также удалить папку «bin» и «setting», а затем после повторного импорта того же проекта, то он работал для меня.

0
ответ дан Shyamjeet Sharma 22 August 2018 в 11:19
поделиться

Ошибка: Произошла ошибка JNI, проверьте свою установку и повторите попытку в Eclipse Решение: Проверьте имя своего пакета, поскольку оно может сталкиваться с именем пакета в Ява. Просто измените имя пакета, чтобы решить проблему. :) [/ Д2]

4
ответ дан user8472395 22 August 2018 в 11:19
поделиться

Я также столкнулся с той же проблемой. Посмотрев на консоль, которая говорит

проблема java.lang.SecurityException.

Решение:

Check ваше имя пакета вашего проекта.

Надеемся, что ваша проблема будет решена. Если нет, то, пожалуйста, распечатайте трассировку консоли для отслеживания основной причины.

3
ответ дан zx485 22 August 2018 в 11:19
поделиться
0
ответ дан Allkin 5 November 2018 в 08:51
поделиться
1
ответ дан Jasmohan 5 November 2018 в 08:51
поделиться
0
ответ дан ntucci 5 November 2018 в 08:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: