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

时间:2011-09-12 22:33:09

标签: 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)

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

3 个答案:

答案 0 :(得分:9)

当我从Google登陆时,我会发一个答案:

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

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

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

org.eclim.java.run.mainclass=HelloKittieTest

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

答案 1 :(得分:5)

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

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

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

:Java %

答案 2 :(得分:0)

虽然我有一个条目“< classpathentry kind =”src“path =”src“/>”在.classpath中,但似乎你还需要再次运行:NewSrcEntry src来触发eclim刷新相对配置。