6

我无法让 :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)

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

4

3 回答 3

9

当我从谷歌登陆这里时,我将发布一个答案:

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

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

保存文件,运行:ProjectSettings命令将打开提到的文件并设置:

org.eclim.java.run.mainclass=HelloKittieTest

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

于 2012-02-18T18:54:24.567 回答
5

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

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

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

:Java %
于 2014-10-03T03:15:31.580 回答
0

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

于 2015-03-23T10:30:35.300 回答