Eclim - 将org.eclim.java.run.mainclass设置为什么?

cif*_*key 6 java vim eclim

我无法获得:Java命令在eclim中工作.当我运行它时,我得到:

java.lang.RuntimeException: Required setting 'org.eclim.java.run.mainclass' has not been set.
    at org.eclim.plugin.jdt.command.src.JavaCommand.execute(JavaCommand.java:107)
    at org.eclim.command.Main.main(Main.java:89)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.martiansoftware.nailgun.NGSession.run(NGSession.java:334)
Run Code Online (Sandbox Code Playgroud)

似乎有很多解释如何解决这个问题,例如这篇文章在SO或这里,但他们都说通过"设置项目的org.eclim.java.run.mainclass属性":ProjectSettings.我的问题是我将它设置为什么?无论我在尝试编写更改时放置什么,vim都说"操作包含错误.有关详细信息,请参阅位置列表."

Ern*_*est 9

当我从谷歌来到这里时,我会发一个答案:

您需要使用main方法设置类的名称.例如,如果您只有一个类:

class HelloKittieTest {
  public static void main (String [] args)
  {
    System.out.println("Hello Kittie");
  }
}
Run Code Online (Sandbox Code Playgroud)

保存文件,运行:ProjectSettings命令,打开上述文件并设置:

org.eclim.java.run.mainclass=HelloKittieTest
Run Code Online (Sandbox Code Playgroud)

别忘了保存那个.现在你应该正常运行:Java


Edd*_*e B 5

@ Ernest的答案对于运行项目的主类是正确的.但是,如果要为任意类运行main方法,则只需将当前文件标记%作为参数传递给:Java命令...

public class Foo{ 
    public static void main(String[] args) {
       System.out.println("I came from Foo");
    }
}
Run Code Online (Sandbox Code Playgroud)

在命令模式下传递当前文件标记(%).

:Java %
Run Code Online (Sandbox Code Playgroud)