Javaでいくつかの問題が発生しました。見てみな。
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!
それはクールです、しかし、これはどうでしょうか:
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
一体何? 2つ目ではなく最初のはたらく理由は何ですか? scalaをjarする方法は?
兄弟、よろしくお願いします。
-jarを定義すると、-classpathは無視されます。
-jarこのオプションを使用すると、JARファイルがすべてのユーザークラスのソースとなり、他のユーザークラスパス設定は無視されます。
マニフェストメタデータ でクラスパスの依存関係を定義できます。
アプリを起動する最も簡単な方法は、scalaスクリプトを使用することです。
scala -classpath target/scaaaaaaaaala-1.0.jar scaaalaaa.App Hello World!
単に走る
scala scaaaaaaaaala-1.0.jar
2.11.6で動作します
実行可能jarの場合、クラスパスはjarのマニフェストにある必要があります。そのためのヘルプについては、 Stackoverflow:依存関係jarを使用して実行可能jarを作成する方法 への回答をご覧ください。
以下はScala Executable Jarを実行する方法です
システムにscalaをインストールする必要があります。
ここでは、最初にjarパスとjar名を指定します
コードに依存性jarが必要な場合、すべてのjarを1つのディレクトリに保持し、「:」の後に以下のようなコマンドでこのパスを指定します。
scala -cp "/your/jar/path/jar_name.jar:/your/dependency/jar/path/*" SampleCode