2009-07-16 8 views
4

방금 ​​스칼라로 놀았으며 http://www.scala-lang.org/node/94에 설명 된대로 Eclipse 플러그인을 설치했지만 "Hello World"테스트 예제를 입력하고 설명 된대로 구성을 실행, 나는 코드가 싱글 톤 객체를 추가, 나는 명백한 솔루션을 조금 (main 메소드를 추가를 만지작 한java.lang.NoSuchMethodError : Eclipse 스칼라 플러그인으로 HelloWorld를 시작할 때 주

package hello 

object HelloWorld extends Application { 
    println("Hello World!") 
} 

입니다 참고로 다음과 같은 오류

Exception in thread "main" java.lang.NoSuchMethodError: main 

를 얻을 주요 방법)하지만 나는 cle 뭔가 잘못된 일을하는 것.

누구나 시험용 예제를 사용하거나 잘못된 것을 지적 할 수 있습니까?

답변

1

스칼라 플러그인은 약간 불안정합니다. 프로젝트를 닫았다가 다시 열어보십시오.

+1

프로젝트 -> 다시 시작하지 않고도 트릭을 수행해야합니다. –

1

아쉽게도 잘못하지 않았습니다. 스칼라의 이클립스 플러그인은 더 좋은 날을 보았지만 더 최근의 기능을 이용하여 더 나은 통합을 가능하게하기 위해 다시 작성되었으며 현재 버전은 버그가있다.

지금 당장 NetBeans를 권장합니다. 또는 IDEA, 돈이 있다면.

+0

실험하고있는 것에 돈을 쓰고 싶지 않다면 언제든지 IDEA EAP를 사용할 수 있습니다. –

1

넷빈즈는 정상적으로 작동하지만 문제가 있습니다. 바로 지금 나는 좋은 Eclipse 3.4 + Scala Plugin 2.7.5를 가지고있다. 이클립스 3.4, 스칼라 2.7.5, 프로젝트 등을 새로 설치하는 것이 좋습니다. 스칼라 프로젝트 작성자로 프로젝트를 만들었습니까? 즉, 새 프로젝트 만들기 -> 스칼라 프로젝트? 물론이 모든 것이 당신을 위해 일하고 있다면.

2

프로젝트를 정리 한 다음 main 메소드로 클래스에 가서 strg + s (자동 빌드)로 빌드하여 문제를 해결합니다. 매력처럼 작동합니다.

+0

그냥 Netbeans '(프로젝트 -> 속성 -> 컴파일) on.turning 기능을 저장하고 수동으로 컴파일 컴파일 Netbeans'같은 문제가 있었다 지적했다. –

2

그것은 조금 못생긴,하지만 당신은 파일 HelloWordSrc.scala 내부

package hello 

object HelloWorld { 
    def main(args:Array[String]) { 
    println("Hello World!") 
    } 
} 

을 배치 할 수 있습니다 (또는 대신 후행 "의 Src"의 원하는대로), 아마 한 번 프로젝트를 청소 Eclipse에서 실행해야합니다. 은 "확장 응용 프로그램"이클립스 내부에서 나를 위해 작동하지 않았다,하지만 플러그인은 파일의 이름으로했다

환호

2

지정으로 어떤 이유로 같은 이름을 가질 수 없습니다 코드, 내부의 주요 방법을 찾습니다 정확히 같은 문제. 나를위한 솔루션이 있었다 : 실행 - 할

  • 이동> 실행 구성
  • 수동
  • 적용을 전체 클래스 이름 (예 : hello.HelloWorld)을 지정하고 실행하는 새로운 JavaApplication 구성을 만듭니다

그래야합니다.

편집 문제의 원인에 관해서는

, 이럴 이클립스 파일 HelloWorld.class을 찾고 실행합니다. 그러나 찾고자하는 것이 HelloWorld $입니다.클래스 (또는 다른 방향). 그러나이 가정은 틀릴 수 있습니다 ...

4

어젯밤에 같은 문제가 발생했습니다. 나는 기존의 모든 스칼라 실행 구성을 제거한 다음 첫 번째 중괄호 앞에 줄 바꿈을 추가하여 해결했습니다.

내가 한 일은 기존 실행 구성으로 가서 "인수"탭에 일부 정크를 추가하는 것입니다. 다시

+0

첫 번째 중괄호 앞에 줄 바꿈을 추가하십시오. 내 하루가 절약되었습니다! –

4

나는 또한 아래의 코드로이 오류에 충돌이 프로그램의 출력에 영향을 미치지 않았다, 그래서 나는 어쨌든 인수를 무시 해요,하지만 주요 찾을 수있는 플러그인을 가지고 :

package hello 

class HelloWorld extends Application { 
    Console.println("Hello World!") 
} 

오류 object 대신 을 사용했습니다. object으로 전환하면 Eclipse에서 잘 돌아갔습니다.

+0

그게 다행이야, 브렌트 대단히 고마워! –

+0

나는 고통을 덜어 주어 기쁘다. –

2

같은 문제가 있습니다. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "properties-> Java Build Path"를 선택하면 "Default output folder"가 "project/bin"이라는 것을 볼 수 있습니다. "your project/classes"으로 변경 한 다음 프로젝트를 정리하고 다시 작성하십시오. 몇 가지 불만은 여전히 ​​나타나지만 진행될 것입니다. 컴파일 된 ".class"파일이 "classes"폴더 아래에 생성되었는지 확인하십시오.

기본 Java의 실행 엔진/구성과 관련이 있다고 생각됩니다. . Java에 익숙하지 않기 때문에 잘 모르겠습니다.

+0

깨끗하고 재건축 된 프로젝트로 충분했습니다. –

-3

간단한 답 : (. 2.9 *) 당신은 당신이 스칼라의 최신 버전을 사용하는 경우 수도가

0

을하는 데 도움이 다른 클래스에 클래스를 이동 다른 를 프로그램을 다시 시작합니다 (넷빈즈 또는 ECLIPS)을 사용하는 경우, 당신은 사용해야합니다

object HelloWorld extends App { 
    println("Hello World!") 
} 

응용 프로그램이 아니라 응용 프로그램. 신청은 2.8 또는 2.7 방법이었다. 이것이 유일한 문제인지는 또 다른 질문입니다.

관련 문제