Pie*_*ric 8 scala jar executable-jar
我正在尝试以"干净的方式"打包一个小应用程序(仍在学习Scala!).目标是拥有一个可执行的JAR文件.我做了以下事情:
Run Code Online (Sandbox Code Playgroud)scala -cp myjarfile.jar MyClass
要么
Run Code Online (Sandbox Code Playgroud)java -classpath path\to\scala-library.jar;myjarfile.jar MyClass
但不会合作
Run Code Online (Sandbox Code Playgroud)java -jar myjarfile.jar
因为然后无法找到scala/ScalaObject.并且在最后一个上添加类路径没有用,因为-jar选项将忽略-classpath选项.请注意,我已在系统CLASSPATH变量中添加了scala库,但在使用-jar时似乎也会忽略它.
经过数小时的谷歌搜索,我看不到创建一个小的jar文件,双击时将启动,并且不涉及痛苦的操作.我错过了什么?我猜应该有一些方法来定义scala库在系统级别的位置.您如何处理您希望编译并准备运行以提高效率的小型应用程序?
请注意,虽然我正在使用sbt,但我手头没有jar工具(我依赖的是JRE,而不是JDK).
谢谢!皮耶尔里克.
以下设置对我有用:
scala-library.jar与可执行 jar 位于同一文件夹中(并从那里调用 java )Class-Path: scala-library.jar另一种选择是将 scala-library.jar 的内容合并到您的应用程序 jar 中。缺点是这会增加其尺寸。但是您可以使用 Proguard 从最终的 jar 中删除未使用的类。我认为有一种简单的方法可以使用 sbt 使用 proguard 打包可执行 jar。
关于使用Proguard进行收缩,你可以看看这个页面。这是关于Android开发的;只需忽略这部分并查看收缩结果表即可。一些示例应用程序缩小到不到 100kB。
也许您需要稍微完善一下您的问题。你想达到什么目的?您只想在您的系统上安装该程序还是想分发它?
如果您想要快速启动 Java 应用程序而不会对 JVM 启动时间产生太大影响,您可以看看nailgun。
| 归档时间: |
|
| 查看次数: |
1658 次 |
| 最近记录: |