Bir kavanoz oluşturmak Scala bir dosyadan
Scala yeniyim ve Java bilmiyorum. Basit Scala bir dosya jar dosyası oluşturmak istiyorum. Benim Hello world var.scala, bir helloworld.jar oluşturur.
Apaçık.mf:
Main-Class: HelloWorld
Ben konsolu çalıştırın:
fsc HelloWorld.scala
jar -cvfm HelloWorld.jar Manifest.mf HelloWorld\$.class HelloWorld.class
java -jar HelloWorld.jar
=> "Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/jar"
java -cp HelloWorld.jar HelloWorld
=> Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
at hoppity.main(HelloWorld.scala)
CEVAP
Örnek dizin yapısı:
X:\scala\bin
X:\scala\build.bat
X:\scala\MANIFEST.MF
X:\scala\src
X:\scala\src\foo
X:\scala\src\foo\HelloWorld.scala
Hello world.scala:
//file: foo/HelloWorld.scala
package foo {
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
}
APAÇIK.MF:
Main-Class: foo.HelloWorld
Class-Path: scala-library.jar
inşa.yarasa:
@ECHO OFF
IF EXIST hellow.jar DEL hellow.jar
IF NOT EXIST scala-library.jar COPY %SCALA_HOME%\lib\scala-library.jar .
CALL scalac -sourcepath src -d bin src\foo\HelloWorld.scala
CD bin
jar -cfm ..\hellow.jar ..\MANIFEST.MF *.*
CD ..
java -jar hellow.jar
< / ^ hr .
Başarılı bir şekilde kullanmak için-jargeçiş, iki girdileri gerekirMETA-INF/MANİFEST.MFdosya: ana sınıfı; tüm bağımlılıkları için göreli URL. Belgelere notlar:
-jar
Bir program içinde saklanmış yürütmek JAR dosyası. İlk bağımsız değişken. bir yerine bir JAR dosyası adı başlangıç sınıfı adı. Bunun için Sipariş çalışma seçeneği, bildirim JAR dosyası için bir satır içermelidir Ana Sınıf adı: code. Burada, code sınıfı olan tanımlar ([] String public static void main besten) olarak hizmet veren bir yöntem uygulamanın başlangıç noktası. Bakın Kavanoz aracı referans sayfa ve Kavanoz Java izi için Öğretici Kavanoz ile çalışma hakkında bilgi dosyaları ve Jar-dosya gösterir.
Bu seçeneği kullandığınızda, JAR dosya kullanıcı sınıfları,kaynağı ve diğer kullanıcı sınıfı yol ayarları dikkate alınmaz.
(Not: JAR dosyalarını en POSTA uygulamaları ile kontrol edilebilir; muhtemelen toplu komut; Scala kod dizin adlarında boşluklar ihmal runner sürüm 2.7.4.son .)
< / ^ hr .
Bütünlüğü için, eşdeğer bir komut dosyası bash:
#!/bin/bash
if [ ! $SCALA_HOME ]
then
echo ERROR: set a SCALA_HOME environment variable
exit
fi
if [ ! -f scala-library.jar ]
then
cp $SCALA_HOME/lib/scala-library.jar .
fi
scalac -sourcepath src -d bin src/foo/HelloWorld.scala
cd bin
jar -cfm ../hellow.jar ../MANIFEST.MF *
cd ..
java -jar hellow.jar
Yolu Scala bir liste oluşturmak için t...
Kaynaklar nasıl gradle ile kavanoz olu...
Dağıtım için Android Kavanoz bir kütüp...
Hızlı bir şekilde kavanoz ayıklamak ve...
Nasıl Android Kütüphane Projesi için k...