Невозможно запустить проект Scala-Neo4j из командной строки

Я разработал проект Java, в котором написал несколько классов Scala и несколько классов Java. Я использовал в проекте оболочку Scala-Neo4j для написания функций Scala для вставки и извлечения узлов Neo4j. Я также написал в проекте сервисы Thrift на java, так как мне нужно вызывать эти функции Scala из Php. Наконец, я извлек файл jar с помощью Eclipse, попытался запустить его из командной строки и получил следующее исключение.

Exception in thread "main" java.lang.NoClassDefFoundError: org/neo4j/scala/Neo4jWrapper
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    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:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at dum.Sad.main(Sad.scala)
    at dum.ScalaRunner.main(ScalaRunner.java:7)
Caused by: java.lang.ClassNotFoundException: org.neo4j.scala.Neo4jWrapper
    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:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 14 more

Он отлично работает, когда я запускаю проект из Eclipse. Но при запуске файла jar, который я извлек из проекта, я получаю исключение выше. Где я ошибся?


person yAsH    schedule 21.05.2013    source источник


Ответы (1)


Кажется, вы неправильно настраиваете путь к классам. Попробуй это:

scala -cp ./where/is/Neo4jWrapper/jar YourClass

Конечно, замените ./where/is/Neo4jWrapper/jar на путь к .jar. Обратите внимание, что если вам нужно указать более одного jar или каталога классов, вам нужно разделить их с помощью :, если в Linux/Mac, или ;, если в Windows. И избегайте пробелов в пути к классам.

person pedrofurla    schedule 21.05.2013
comment
Я сохранил все банки в папке с именем lib и добавил ее в проект. - person yAsH; 21.05.2013