如何在java文件中运行scala jar文件?

时间:2015-04-21 16:42:08

标签: java scala

我需要从Java代码运行Scala jar文件:

所以,如果我有这个Scala代码:

object test extends App {
    override def main(args: Array[String]) {
        println("Hello, world! " + args.toList)
    }
}

我在demo.jar导出,我想从Java应用程序内部执行? 我使用它的方式是抛出运行时进程,这与我无关?

import java.io.InputStream;
import org.apache.commons.io.IOUtils;

public class testscalajar {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {
            Process proc = Runtime.getRuntime().exec(new String[]{"scala","-cp","d:\\demo.jar", "test"});
            // Then retrieve the process output
            InputStream in = proc.getInputStream();
            InputStream err = proc.getErrorStream();
            String inString = IOUtils.toString(in, "UTF8"); 
            String errString = IOUtils.toString(err, "UTF8"); 
            System.out.println(inString);
            System.out.println(errString);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

任何人都有其他解决方案?????

1 个答案:

答案 0 :(得分:1)

Scala编译为普通的JVM .class文件,您不需要任何外部进程来使用Java中的Scala代码或Scala中的Java代码。

确保您的路径设置正确,然后只需创建Scala对象并从Java代码中调用Scala方法,就好像它只是另一个Java库一样。