Nie mam doświadczenia ze Scala, więc to pytanie może być elementarne. Próbuję użyć klasy Scala z poziomu języka Java, na podstawie przykładu "Person" w tym samouczku: http://www.codecommit.com/blog/java/interop-between-java-and-scalaNoClassDefFoundError przy użyciu klasy Scala z Java
Tworzę dwa pliki źródłowe, jedną Scala i jedną Javę w następujący sposób.
Person.scala:
class Person {
def getName() = "Daniel Spiewak"
}
Test.java:
public class Test {
public static void main(String[] args) {
Person p = new Person();
p.getName();
}
}
mogę skompilować (z ostrzeżeniem, że nie rozumiem), ale pojawia się ClassNotFoundException gdy próbuję uruchomić program.
$ scalac Person.scala $ javac Test.java ./Person.class: warning: Cannot find annotation method 'bytes()' in type 'ScalaSignature': class file for scala.reflect.ScalaSignature not found 1 warning $ java Test Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:787) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:447) 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 Test.main(Test.java:3) Caused by: java.lang.ClassNotFoundException: scala.ScalaObject 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) ... 13 more
Każdy pomysł, co robię źle?
Bo za wyjątkiem jest [tutaj] (http://javarevisited.blogspot.in/2011/06/noclassdeffounderror-exception-in.html) Czy należy zapoznać – gks
dodajesz scala-library.jar do swojej ścieżki klas? –
Podczas próby tego samego przykładu dostałem poniżej błędu, proszę o pomoc .. 'C: \ Users \ użytkownik1 \ Desktop> java -cp.: Scala-library-2.11.8.jar Test Błąd: Nie można znaleźć lub load main class Test' – rinuthomaz