Ошибка GATE Java

Я почти ничего не знаю о Java, поэтому, пожалуйста, будьте со мной полегче. Я использую этот плагин, который у меня отлично работает несколько дней на моем Mac (следуя очень простым инструкциям репозитория ниже), но когда я перенес его на экземпляр Ubuntu, я получил следующую ошибку:

ResumeParser/ResumeTransducer$ java -cp 'bin/*:../GATEFiles/lib/*:../GATEFILES/bin/gate.jar:lib/*' code4goal.antony.resumeparser.ResumeParserProgram somefile.pdf somefile.json
Exception in thread "main" java.lang.NoClassDefFoundError: gate/SimpleAnnotation
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2625)
    at java.lang.Class.getMethod0(Class.java:2866)
    at java.lang.Class.getMethod(Class.java:1676)
    at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: gate.SimpleAnnotation
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 6 more

У кого-нибудь есть мысли, что идет не так?

Инструкции по установке и использованию:

 1. git clone https://github.com/antonydeepak/ResumeParser.git
 2. cd ResumeParser/ResumeTransducer
 3. export GATE_HOME="..\GATEFiles"

person tim peterson    schedule 07.06.2016    source источник


Ответы (3)


Пути в Ubuntu чувствительны к регистру, GATEFiles отличается от GATEFILES. Поскольку gate.SimpleAnnotation находится в gate.jar, держу пари, ваш путь к классам должен быть:

-cp 'bin/:../GATEFiles/lib/:../GATEFiles/bin/gate.jar:lib/*'

Отказ от ответственности: я не использовал этот плагин, я не знаю, верны ли другие части пути к классам.

В общем, вы можете "отладить", попробовав

ls ../GATEFiles/bin/, чтобы узнать, есть ли файл gate.jar.

person Yasen    schedule 07.06.2016
comment
Да, это была проблема с чувствительностью к регистру. Второй GATEFILES должен быть GATEFiles. - person tim peterson; 07.06.2016

Трудно сказать, но, скорее всего, класс, который он не может найти, находится в файле gate.jar, и его либо нет на новой машине, либо он находится не в том месте на новой машине.

Чтобы немного расширить: классы находятся в нескольких местах, но вы указываете gate.jar в пути к классам командной строки (это то, что обозначает -cp), так что я предполагаю, что это там. Поскольку java не может его найти, я предполагаю, что необходимый файл jar находится не там, где он должен быть, чтобы среда выполнения Java могла его найти.

person arcy    schedule 07.06.2016
comment
спасибо любые предложения о том, как изменить часть -cp? - person tim peterson; 07.06.2016

Для Linux и OSX используйте '/' и ':', попробуйте этот вызов. У меня это сработало

java -cp './bin/*:../GATEFiles/lib/*:../GATEFiles/bin/gate.jar:./lib/*' code4goal.antony.resumeparser.ResumeParserProgram cv.pdf cv.json
person Pablo Rodriguez    schedule 15.07.2016