可能であれば、ScalaアプリケーションをJVMで直接実行できる通常の実行可能ファイルJARにエクスポートする方法を教えてください。
ありがとうScalaアプリケーションを実行可能ファイルにエクスポートする
答えて
これは完全に可能です。たとえばrunning a maven scala projectを参照してください。 ScalaはJavaバイトコードにコンパイルされるので、JVMは基礎となる実装言語を認識していません。
scalac
を使用してScalaソースをコンパイルした後は、.class
個のファイルが後でJARにパッケージ化されます。そして、あなたは、単に使用してそれらを実行することができます
$ java -cp "your.jar:scala-library.jar" com.example.Main
注意をすることをあなたはは CLASSPATHにscala-library.jar
を含める(現在はそれがほとんど9 MIBです...)とmain
メソッドを含むクラスを指定する必要があります。
ビルドにsbtを使用する場合は、one-jarプラグインの1つを使用できます。彼らはすべての依存関係を1つの大きなjarファイル(すべてのscala.jarファイルを含む)に入れます。つまり、1つのjarファイルのみが必要で、すべての依存ファイルを管理する必要はありません。 (主にhttps://github.com/sbt/sbt-assemblyからコピー)SBT-アセンブリとの例として
:
プロジェクト/ plugins.sbt:
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "X.X.X")
build.sbt:
import AssemblyKeys._ // put this at the top of the file
seq(assemblySettings: _*)
その後、あなたが生成することができますとの瓶:
sbt assembly
Fabianの答えの代わりに、Mavenを使用している場合は、アセンブリプラグインを使用できます。 (それはあなたのDEPSでの場合)Scalaの-library.jarを含め、すべてのあなたのDEPSをパッケージ化しますが、そう開梱すべてのクラスで平坦化しないだろう
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>package-jar-with-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<appendAssemblyId>true</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifestEntries>
<SplashScreen-Image>splash.png</SplashScreen-Image>
</manifestEntries>
<manifest>
<mainClass>se.aptly.epm.main.PrognosisApp</mainClass>
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>
:ような何か。これは、実行可能なjarファイルでは、jarファイル内のjarファイル内のコードを使用できないためです。
http://code.google.com/p/onejar-maven-plugin/を使用し、(よりよいです)その仕事をするために、私はそれが一瓶にMavenのモジョラッパーだと思う:http://one-jar.sourceforge.net/
一瓶用SBT-のプラグインもあります: https://github.com/sbt/sbt-onejar
実行可能なjarファイルでのスイングアプリケーションをパッケージ化するために、私のために働いたソリューションは、通常のjarファイル(非実行)としての私のプロジェクトをエクスポートし、更新することでしたjarファイルのマニフェストへ:
- scala-library.jar scala-swingを追加します。
META-INF/MANIFEST.MF
追加:
- パスへのjarパッケージには、あなたは、次のパスにjarファイル内のマニフェストファイルを(あなたがたとえば7Zで開くことができることを)見つけることができるメインクラス
を示していますマニフェストの末尾にある次の行:
Main-Class: myPackage.myMainClass
Class-Path: scala-library.jar scala-swing.jar
これで、jarファイルをクリックすると正しく実行されます。
注:マニフェストのカスタマイズの詳細については、 http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.htmlを参照してください。
私の解決策は、maven - > create scala
runnable jarです。
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<version>2.15.2</version>
<executions>
<execution>
<id>scala-compile-first</id>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<includes>
<include>**/*.scala</include>
</includes>
</configuration>
</execution>
<execution>
<id>scala-test-compile</id>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>xxx.xxx.xxx.Main</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>reference.conf</resource>
</transformer>
</transformers>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
- 1. GWT-クライアントサイドコードを実行可能ファイルにエクスポート
- 2. Eclipse RCPアプリケーションを実行可能なjarファイルにエクスポート
- 3. intellij scala create実行可能なjarファイル
- 4. javafx8アプリケーション実行可能ファイル
- 5. GitHubリポジトリファイルを使用可能なJAR実行可能ファイルにエクスポートする問題
- 6. データベースを持つアプリケーションをNetBeansの実行可能なJarにエクスポート
- 7. 実行可能ファイルを別の実行可能ファイルにインクルード
- 8. プロジェクトをPDF文書の実行可能なJARファイルにエクスポート
- 9. Libgdx:実行可能なJarにエクスポート
- 10. python3Kアプリケーションを実行可能ファイルにパッケージ化するには?
- 11. Visual Studio - 実行可能ファイルにアプリケーションを作成するには?
- 12. .NET実行可能ファイルをネイティブ実行可能ファイルに変換する
- 13. Spring Webアプリケーション(web.xml)をSpringブート実行可能ファイルJarに移行
- 14. JUnit4テストケースを実行可能なjarファイルとしてエクスポートするには
- 15. Java実行可能アプリケーション
- 16. 別の実行可能ファイルを作成するWindows Formsアプリケーション
- 17. 実行可能ファイルを.pro
- 18. システムプロパティを実行可能ファイルに渡す
- 19. 実行可能なjarファイルを別のマシンに実行する
- 20. MATLABから実行可能ファイルを実行するには?
- 21. aws lambdaで実行可能ファイルを実行するには?
- 22. AppDomainで実行可能ファイルを実行するには?
- 23. RaspbianでPythonで実行可能ファイルを実行するには?
- 24. jarでJava実行可能ファイルを実行するには
- 25. 実行可能ファイルでTextviewを実行するには
- 26. 私は実行可能なjarファイルとして私のjavaをエクスポートすると、
- 27. Cで実行可能なC実行可能ファイルをCで実行するシェルスクリプトから実行する
- 28. Qtアプリケーション実行可能ファイルを実行しているときのプロシージャエントリポイントエラー
- 29. Windowsで実行可能なSourcetree git実行可能ファイル
- 30. SAFELY Windowsで実行可能な実行可能ファイルへのパス
このURLは機能しません。 https://github.com/sbt/sbt-assemblyを試してください。 –