Java нет класса def найдена ошибкаasticsearch? - PullRequest
3 голосов
/ 31 декабря 2011

Я выполнил эти шаги на https://github.com/karmi/tire, чтобы установить эластичный поиск для использования с ruby ​​на рельсах

curl -k -L -o elasticsearch-0.17.6.tar.gz http://github.com/downloads/elasticsearch/elasticsearch/elasticsearch-0.17.6.tar.gz 

tar -zxvf elasticsearch-0.17.6.tar.gz

./elasticsearch-0.17.6/bin/elasticsearch -f

Я запускаю это на MinGW на Windows 7, и большая часть процесса прошла гладко.

Однако, как я пытаюсь запустить сервер с ./elasticsearch-0.17.6/bin/ asticsearch -f Я получаю java no class def ошибка:

$ ./elasticsearch-0.17.6/bin/elasticsearch
Exception in thread "main" java.lang.NoClassDefFoundError: org/
elasticsearch/bootstrap/ElasticSearch
Caused by: java.lang.ClassNotFoundException:
org.elasticsearch.bootstrap.ElasticSearch
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class:
org.elasticsearch.bootstrap.ElasticSearch.  Program will exit.

Что дает?

1 Ответ

3 голосов
/ 31 декабря 2011

Mingw переводит пути и переменные среды в эквиваленты UNIX.Он разработан для работы со своими собственными инструментами, и запуск чего-то чуждого ему, такого как java.exe, не всегда работает так, как вы ожидаете.В частности, этот сценарий создает путь к классам Java в переменной ES_CLASSPATH, а затем передает его в Java с помощью переключателя -cp, и я уверен, что он передает Java путь, который он просто не понимает.

ЧтоЯ хотел бы найти строку, которая выполняет java.exe в этом сценарии, и сделать копию строки с добавлением «echo», чтобы вы могли видеть выполняемую командную строку.Затем настройте скрипт для обеспечения правильного пути к классам Java.

...