【发布时间】:2012-07-09 23:07:17
【问题描述】:
我有一个 Scala 项目,我想将其导出为 jar。
*1。一开始我尝试为项目创建一个Java类作为入口点
public class JMain {
public static void main(String[] args) {
System.out.println("Java main calling Scala main");
SMain.main(new String[] {""}); //SMain.main is the actual *main*
当从 Eclipse 启动时,它工作得很好而且很花哨,但是当我将它导出为 jar 时,它会给我大约 18 个异常。我现在确实知道如何复制 Eclipse 设法启动它的“环境”,我很确定它依赖于 Scala 已经在我的系统上的事实——我需要一个包含所有东西的独立 jar。
*2。我的第二次尝试包括尝试 lach 在这里建议的 How to deploy a Scala project from Eclipse? 即:
public class JMain {
public static void main(String[] args) {
System.out.println("Java Main");
List<String> argList = new ArrayList<String>();
argList.add("fully.qualified.ClassName"); //???
for (String s : args) argList.add(s);
scala.tools.nsc.MainGenericRunner.main(argList.toArray(new String[0]));
这一次它甚至不会从 Eclipse 中运行,尽管它只给出了以著名的 NoClassDefFoundError 开头的 6 个左右的异常。我有一种感觉,我没有得到正确的 fully.qualified.ClassName。 *3。如果 main Scala 类被称为“Dis.scala”并且位于包“pack”中,那么这个 fully.qualified.ClassName 不应该是“pack.Dis”吗?
我正在使用 Jre 1.6 和 Scala 2.9.2 编辑:我已经包含了所有外部导入的罐子,甚至是 scala-library.jar - 一切都很好并且装在罐子里
附:我不熟悉 Ant、Maven 或 Sbt。我只想让我的 Scala 项目 jared - 如果可能的话,不要涉及到毛茸茸的事情。
【问题讨论】:
-
从长远来看,您可能会发现在前期投入少量精力来设置 Sbt(或 Maven)构建会更简单,从那时起生活变得非常容易。
标签: java scala compilation