当前位置:  开发笔记 > 编程语言 > 正文

Scala:定义'java'可以使用的主要方法

如何解决《Scala:定义'java'可以使用的主要方法》经验,为你挑选了2个好方法。

在Scala中定义main的常用方法(如下所示)可用于运行带有'scala'的类,但不能运行'java'(因为创建的方法不是静态的).如何编写可以用'java'执行的Scala类/对象?

object HelloWorld {
  def main(args: Array[String]) {
    println("Hello, world!")
  }
}

Shaun.. 7

javap实际上会告诉你你的主要是静态的.

javap HelloWorld
Compiled from "HelloWorld.scala"
public final class HelloWorld extends java.lang.Object{
    public static final void main(java.lang.String[]);
    public static final int $tag()  throws java.rmi.RemoteException;
}

也许你只需要你的类路径上的Scala罐子?

Stack Overflow上有一个类似的问题:" 从Scala文件创建一个jar文件 ".

我刚刚使用上面的说明(链接)验证了这一点.

只需通过:

java -jar HelloWorld.jar


Daniel C. So.. 7

你错了.你可以用"java"运行它,你给出的不可能的原因是不正确的.在这里,让我展示"scala"里面的内容.

Unix的:

#!/bin/sh
...
exec "${JAVACMD:=java}" $JAVA_OPTS -cp "$TOOL_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Denv.emacs="$EMACS"  scala.tools.nsc.MainGenericRunner  "$@"

视窗:

@echo off
...
if "%_JAVACMD%"=="" set _JAVACMD=java
...
"%_JAVACMD%" %_JAVA_OPTS% %_PROPS% -cp "%_TOOL_CLASSPATH%" scala.tools.nsc.MainGenericRunner  %_ARGS%

但是,如果您碰巧有一个定义了相同名称的类,那么可能会影响您的错误,具体取决于您使用的Scala版本.



1> Shaun..:

javap实际上会告诉你你的主要是静态的.

javap HelloWorld
Compiled from "HelloWorld.scala"
public final class HelloWorld extends java.lang.Object{
    public static final void main(java.lang.String[]);
    public static final int $tag()  throws java.rmi.RemoteException;
}

也许你只需要你的类路径上的Scala罐子?

Stack Overflow上有一个类似的问题:" 从Scala文件创建一个jar文件 ".

我刚刚使用上面的说明(链接)验证了这一点.

只需通过:

java -jar HelloWorld.jar



2> Daniel C. So..:

你错了.你可以用"java"运行它,你给出的不可能的原因是不正确的.在这里,让我展示"scala"里面的内容.

Unix的:

#!/bin/sh
...
exec "${JAVACMD:=java}" $JAVA_OPTS -cp "$TOOL_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Denv.emacs="$EMACS"  scala.tools.nsc.MainGenericRunner  "$@"

视窗:

@echo off
...
if "%_JAVACMD%"=="" set _JAVACMD=java
...
"%_JAVACMD%" %_JAVA_OPTS% %_PROPS% -cp "%_TOOL_CLASSPATH%" scala.tools.nsc.MainGenericRunner  %_ARGS%

但是,如果您碰巧有一个定义了相同名称的类,那么可能会影响您的错误,具体取决于您使用的Scala版本.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有