Почему при импорте процессорного ядра в java возникает ошибка? - PullRequest
3 голосов
/ 27 июня 2019

Я довольно новичок в разработке Java. Раньше я программировал в Processing3 IDE, но сейчас пытаюсь перейти на IntelliJ IDEA. Все учебные руководства (https://www.youtube.com/watch?v=_h2GZgnPcnM) импортируют его, поэтому я тоже пытаюсь импортировать processing.core.PApplet. Я также добавил core.jar в библиотеки в настройках структуры проекта.

Когда я импортирую ядро, но не расширяю его (что бы это ни значило) до класса Main, я не получаю никаких ошибок. После расширения до Главного класса я получаю ошибку.

import processing.core.PApplet;

public class Main extends PApplet{
    public static void main(String[] args) {
        //PApplet.main("Main");
    }
}

Я ожидаю, что он будет работать правильно, потому что я следовал инструкциям, приведенным в руководстве. Сообщение об ошибке:

Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
    at processing.core.PApplet.<clinit>(PApplet.java:122)

Я надеюсь, что вы можете сказать мне, что означает сообщение об ошибке ...

Спасибо

1 Ответ

1 голос
/ 28 июня 2019

Эта проблема была зарегистрирована в этой проблеме GitHub.Такое сообщение об ошибке присутствовало, когда Обработка 3.3.6 (x64) была запущена с JDK 9 (x64) - декомпилирующий байт-код приводит к ошибке с этим кодом:

javaPlatform = parseInt(split(javaVersionName, '.')[1]);

Но кажется, что версия JDK 9 былавозвращается как «9», но не «9.0».


String ver = System.getProperty("java.version");
System.out.println(ver);

возвращает только «9».Код в PApplet.java пытается разделить его, используя «.»и возьмите [1] элемент, который не существует.Это вызывает ошибку, которую вы видите.

Я был не в состоянии воспроизвести вашу проблему в Windows 10, обработка 3.5.3 и с использованием Java 10, поэтому я предполагаю, что ваша проблема имеетбыло исправлено в более поздних версиях Java.Из видео, которое вы разместили в своем вопросе, видно, что автор видео использует Java 8 для обработки 3.3.6 - убедитесь, что у вас те же настройки.В противном случае используйте более свежий JDK (например, Java 10), если вы используете последнюю версию Processing (3.5.3).

...