Pertanyaan menjalankan aplikasi scala dengan java -jar


Saya mendapat beberapa masalah dengan java. Coba lihat.

sebastian@sebastian-desktop:~/scaaaaaaaaala$ java -cp /home/sebastian/.m2/repository/org/scala-lang/scala-library/2.8.0.RC3/scala-library-2.8.0.RC3.jar:target/scaaaaaaaaala-1.0.jar scaaalaaa.App

Hello World!

Itu keren, benar, tapi bagaimana ini:

sebastian@sebastian-desktop:~/scaaaaaaaaala$ java -cp /home/sebastian/.m2/repository/org/scala-lang/scala-library/2.8.0.RC3/scala-library-2.8.0.RC3.jar -jar target/scaaaaaaaaala-1.0.jar

Exception in thread "main" java.lang.NoClassDefFoundError: scala/Application
 at java.lang.ClassLoader.defineClass1(Native Method)
 at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
 at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
 at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
 at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
 at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
 at scaaalaaa.App.main(App.scala)
Caused by: java.lang.ClassNotFoundException: scala.Application
 at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
 ... 13 more

Wat sih? Tahu mengapa yang pertama bekerja dan bukan yang kedua? Bagaimana cara saya -jar scala saya ??

Terima kasih sebelumnya, saudara.


32
2018-05-28 15:07


asal


Jawaban:


Jika Anda mendefinisikan -jar-classpath diabaikan:

Panduan Java:

-jar Ketika Anda menggunakan opsi ini, file JAR adalah sumber dari semua pengguna   kelas, dan jalur kelas pengguna lainnya   pengaturan diabaikan.

Anda dapat menentukan dependensi classpath dalam Manifes metadata.

Cara termudah untuk memulai aplikasi Anda menggunakan skrip skala:

scala -classpath target/scaaaaaaaaala-1.0.jar scaaalaaa.App Hello World!

36
2018-05-28 15:18



Untuk stoples yang dapat dieksekusi, classpath harus berada di jar's manifest. Untuk bantuan dalam melakukan itu, lihat jawabannya Stackoverflow: Cara membuat toples yang dapat dieksekusi dengan stoples ketergantungan.


4
2018-05-28 15:33



Cukup berlari

scala scaaaaaaaaala-1.0.jar 

bekerja untuk saya dengan 2.11.6


4
2017-08-17 19:27