Эклим больше не обнаруживает основной класс?
Эклим работает.:PingEclim
доходность
- эклим 2.3.2
- затмение 4.3.1
Файл: Foo.java
public class Foo {
public static void main(String[] args) {
System.out.print("Foo");
}
}
Запустив :Java
, Мне преподносят ошибку
java.lang.RuntimeException: Required setting 'org.eclim.java.run.mainclass' has not been set.
Теперь я знаю, что могу вручную установить основной класс в настройках проекта, но раньше он работал, просто запустив :Java
, Дополнительно могу добавить, что работает :Java %
тоже не работает. Кажется, он просто неспособен определить мою основную функцию.
Обновление Включает вывод :Java %
ниже.
Error: Could not find or load main class .Foo
[java] Java Result: 1
Обновление 2
Похоже, что Eclim устанавливает основной класс в первый раз, когда он обнаруживает и запускает функцию Main внутри проекта. После этого попытка вручную запустить другой класс, содержащий основную функцию, приведет к указанной выше ошибке. Не уверен, как обойти это, но действительно должна быть возможность не быть привязанным к классу, который запускается первым.
1 ответ
У меня тоже была такая же проблема. Затем я обнаружил, что если основной класс включен в пакет, вы должны использовать полное имя класса. Например, если ваш основной класс начинается с:
package a.b.c;
Затем используйте настройку:
org.eclim.java.run.mainclass = a.b.c.Foo
После этого все должно работать нормально.
У меня такая же проблема. Я сравнил два проекта, один был сделан eclim, а другой - в eclipse, и нашел.
.classpath файл на:
затмение
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
эклим
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>
поэтому я попытался изменить его на такой, как eclipse, и это сработало.