Исключение в потоке main java.lang.NoSuchMethodError: java.lang.Character.isAlphabetic(I)Z

Я пытаюсь запустить .jar, который отлично работает на моем компьютере, но выдает следующее исключение на чужом.

Exception in thread "main" java.lang.NoSuchMethodError: java.lang.Character.isAlphabetic(I)Z
    at chatai.Word.shrinkEndPunct(Word.java:91)
    at chatai.Word.createWord(Word.java:36)
    at chatai.ChatAI.addSentence(ChatAI.java:54)
    at shared.Initializer.main(Initializer.java:130)

Я никогда раньше не видел часть (I)Z, кто-нибудь знает, что это значит? Я уже пытался обновить Java.


person Rahat Ahmed    schedule 01.09.2011    source источник


Ответы (2)


Я никогда раньше не видел часть (I)Z. Кто-нибудь знает, что это значит?

Часть (I)Z описывает часть аргумента и типа возвращаемого значения сигнатуры метода.

В данном случае это говорит о том, что метод принимает в качестве аргумента int и возвращает boolean.

Вот полный список таких обозначений типов:

V           void
Z           boolean
C           char
B           byte
S           short
I           int
F           float
J           long
D           double

L<class>;   Reference type, for example Ljava/lang/String;

Трудно сказать, почему программа нормально работает на вашем компьютере. В стандартном Java API нет метода с именем isAlphabetic.

Метод Character.isAlphabetic был представлен в Java 7. Похоже, вы используете Java 7, а у вашего друга установлена ​​только Java 6 (или более ранняя версия).

person aioobe    schedule 01.09.2011
comment
Похоже на новый метод в Java 7. download.oracle.com/javase/7/docs/api/java/lang/ - person Matthew Wilson; 01.09.2011
comment
@ Мэтью, а, спасибо. Вы меня кое-чему сегодня научили ;-) Ответ обновлен. - person aioobe; 01.09.2011
comment
Большое спасибо. Я мог бы поклясться, что этот метод существовал всегда. - person Rahat Ahmed; 05.09.2011

Пользователь aioobe дал хорошее объяснение, как интерпретировать это сообщение об ошибке. Похоже, что указанный метод был только представлен в java7.

person Jörn Horstmann    schedule 01.09.2011