我无法获得: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都说"操作包含错误.有关详细信息,请参阅位置列表."
当我从谷歌来到这里时,我会发一个答案:
您需要使用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
@ 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)