복붙노트

[SCALA] 스칼라 프로젝트는 이클립스에서 컴파일되지 않습니다; "메인 클래스를 찾을 수 없습니다."

SCALA

스칼라 프로젝트는 이클립스에서 컴파일되지 않습니다; "메인 클래스를 찾을 수 없습니다."

나는 이클립스 3.5.2 설치하고 오늘날의 스칼라에서 / 업데이트 - 현재 플러그인 (최종 스칼라 2.8입니다.) 나는 컴파일하고 하나의 단일 객체로 구성된 스칼라 프로젝트를 실행할 수 구현 주 ().

프로젝트가 더 클래스가 포함한다면, 나는 "메인 클래스를 찾을 수 없습니다"오류가 발생합니다.

나는 솔루션을 찾고 시도하고 난 발견 :

이클립스가 제대로 주요 $ 클래스를 찾고,하지 메인 클래스 * 디버그 구성에서, 내 메인 클래스가 제대로 mypackage.Main로 식별됩니다 * 내 플러그인은 최신이며, 이클립스의 내 버전을 권장 * 청소 등 다시 시작하면 도움이되지 않습니다.

같은 프로젝트는 scalac 컴파일합니다.

이 문제를 해결하는 방법에 대한 아이디어를 주셔서 감사합니다.

편집 : MatthieuF 내가 코드를 게시해야한다 제안했다.

이 조각은 오류가 발생합니다. 그것은뿐만 가장 관용적 인 코드,하지만 난 내 환경을 테스트하는 방법을 썼다. 나는 하나의 파일로 별도의 파일로했습니다. 그것은 scalac으로 작업을 수행합니다.

import swing._

class HelloFrame extends Frame {
        title = "First program"
        contents = new Label("Hello, world!")
}

object Hello {
  val frame = new HelloFrame    
  def main(args : Array[String]) : Unit = {
        frame.visible = true
   }
}

하지만, 안녕 내 HelloFrame의 정의, 그것은 작동 I 둥지합니다. 이 조각은 완벽하게 실행 :

import swing._

object Hello {

    class HelloFrame extends Frame {
        title = "First program"
        contents = new Label("Hello, world!")
    }

    val frame = new HelloFrame

    def main(args : Array[String]) : Unit = {
        frame.visible = true
    }
}

해결법

  1. ==============================

    1.나를 위해, 문제는 (문제 탭 참조) 예방 편집이었다 빌드 오류가 있다고했다; 죄송합니다! 오류 볼 수있는 이유는 그 실패한 컴파일 단계, 그리고 거기있을 것으로 예상 클래스 파일을 실행하려는 시도에도 불구하고 실행 매크로 진행; 컴파일을 방지 빌드 오류가 있었기 때문에 그것이 홈페이지를 찾을 수 없다고, 그래서 그들은 존재하지 않는 (컴파일되지 않음).

    나를 위해, 문제는 (문제 탭 참조) 예방 편집이었다 빌드 오류가 있다고했다; 죄송합니다! 오류 볼 수있는 이유는 그 실패한 컴파일 단계, 그리고 거기있을 것으로 예상 클래스 파일을 실행하려는 시도에도 불구하고 실행 매크로 진행; 컴파일을 방지 빌드 오류가 있었기 때문에 그것이 홈페이지를 찾을 수 없다고, 그래서 그들은 존재하지 않는 (컴파일되지 않음).

    문제는 빌드 오류가 고정되어 즉, 성공적으로 완료 할 수있을 때 사라집니다.

    나는, 이론적으로, 더 많은 문제에없는 빌드가 성공적으로 완료되지 않은 이유가 복잡 할 수있다 같아요.

  2. ==============================

    2.하나의 가능성은 CTRL-F11를 사용하여 시작하려고하지만, 다른 클래스에서하는 것입니다.

    하나의 가능성은 CTRL-F11를 사용하여 시작하려고하지만, 다른 클래스에서하는 것입니다.

    스칼라 이클립스 플러그인은 자바 발사에 대한 기본값을 순종하지 않습니다. 시작 환경 설정 -> 실행 / Debug->에서 일부 옵션 등을 실행 동작 -> 항상 실행 이전에 선택한 응용 프로그램, 스칼라 이클립스 플러그인에서이 현재 사용하지 않는 일이있다. A는 주요 지정된 시작하려면, 당신은 클래스의 편집기에서 그것을 실행해야합니다.

    이를 위해 제기 버그가 발생했습니다. http://scala-ide.assembla.com/spaces/scala-ide/tickets/1000023-scala-launch--does-not-follow-jdt-behaviour

    편집 :이 지금 (대부분) 고정.

  3. ==============================

    3.나에게는 이클립스 특정 문제였다. 나는의 .class 파일이 전혀 구축되지 않은 것으로 나타났습니다. 그래서 빈 디렉토리는 컴파일 된 클래스가 없습니다. .scala * .sbt을 사용하여 파일이 빈 디렉토리에 복사 * 내가 수동으로 컴파일 할 때 예상대로 작동했다. 나는 다른 팁과 트릭을 시도하고 나는 이클립스에서 스칼라 플러그인을 재설치 할 때까지 일을하지 않았다.

    나에게는 이클립스 특정 문제였다. 나는의 .class 파일이 전혀 구축되지 않은 것으로 나타났습니다. 그래서 빈 디렉토리는 컴파일 된 클래스가 없습니다. .scala * .sbt을 사용하여 파일이 빈 디렉토리에 복사 * 내가 수동으로 컴파일 할 때 예상대로 작동했다. 나는 다른 팁과 트릭을 시도하고 나는 이클립스에서 스칼라 플러그인을 재설치 할 때까지 일을하지 않았다.

  4. ==============================

    4.나는 다음 자동 구축과 ".. 프로젝트 -> 청소"를 실행하여 유사한 문제를 해결할 것입니다.

    나는 다음 자동 구축과 ".. 프로젝트 -> 청소"를 실행하여 유사한 문제를 해결할 것입니다.

  5. ==============================

    5.나는 나 자신에 의해 만들어진 자바 응용 프로그램과 같은 오류 메시지가 있었다.

    나는 나 자신에 의해 만들어진 자바 응용 프로그램과 같은 오류 메시지가 있었다.

    문제는 내가 삭제 한 것이 었습니다 (하지만 이클립스 내부) 자바 빌드 경로 (프로젝트의 속성 창)에서 삭제하지 않고, Java 빌드 경로에 속한 항아리. 내가 그것을했을 때 클래스 컴파일하고 다시 실행할 수 있습니다.

  6. ==============================

    6..class 파일은 일반적으로 bin 디렉토리 아래에 존재해야합니다.

    .class 파일은 일반적으로 bin 디렉토리 아래에 존재해야합니다.

    같은 프로젝트에 관련이없는 파일에 오류가있는 경우 특히, 다음 컴파일이 실패 할 수 있습니다, 어떤을 .class 파일이 생성되지 않습니다.

  7. ==============================

    7.성공적으로 컴파일의 완료를 방지 응용 프로그램의 빌드 경로에 추가 오류를 포함하는 프로젝트의 경우가있을 수 있습니다. 확실히 당신은 응용 프로그램을 실행하기 전에 빌드 경로에서 이러한 프로젝트를 제거 확인합니다.

    성공적으로 컴파일의 완료를 방지 응용 프로그램의 빌드 경로에 추가 오류를 포함하는 프로젝트의 경우가있을 수 있습니다. 확실히 당신은 응용 프로그램을 실행하기 전에 빌드 경로에서 이러한 프로젝트를 제거 확인합니다.

    이 프로젝트를 제거하면 나를 위해 문제를 해결했다.

  8. ==============================

    8.당신은 적절한 빌드 도구 설정이 있습니까? SBT처럼 당신이 그것을 설치 한?

    당신은 적절한 빌드 도구 설정이 있습니까? SBT처럼 당신이 그것을 설치 한?

    당신은 $ SBT --version하여 버전을 확인할 수 있습니다

    이 설정을하지 않으면 당신은 http://www.scala-sbt.org/download.html 여기에서 다운로드 할 수 있습니다

    당신은 설치 후 Eclipse를 다시 시작해야 할 수도 있습니다.

  9. ==============================

    9.그냥 XXX.scala 파일의 코드를 복사합니다. 패키지를 제거하고 새 스칼라 클래스를 만들 수 있습니다. 당신의 XXX.scala 코드를 붙여 넣습니다. (당신이 받는다는 사용하는 경우, 메이븐 깨끗하고 빌드를 수행.) 실행 구성을 다시. 이것은 나를 위해 작동합니다.

    그냥 XXX.scala 파일의 코드를 복사합니다. 패키지를 제거하고 새 스칼라 클래스를 만들 수 있습니다. 당신의 XXX.scala 코드를 붙여 넣습니다. (당신이 받는다는 사용하는 경우, 메이븐 깨끗하고 빌드를 수행.) 실행 구성을 다시. 이것은 나를 위해 작동합니다.

  10. ==============================

    10.나는이 문제에 직면했다. 난 그냥 "자동 빌드"로 작성된 동일한 코드, 설정 빌드를 패키지 이름, 생성 된 스칼라 클래스를 삭제했습니다. 마지막으로, 그것은 완벽하게 잘 작동합니다.

    나는이 문제에 직면했다. 난 그냥 "자동 빌드"로 작성된 동일한 코드, 설정 빌드를 패키지 이름, 생성 된 스칼라 클래스를 삭제했습니다. 마지막으로, 그것은 완벽하게 잘 작동합니다.

  11. ==============================

    11.체크인 규모 ide.log

    체크인 규모 ide.log

    나에게이 문제는 오류가 거기에 있다고했다 :

    의 AppData \ 로컬 \ 임시 \ sbt_10d322fb \ xsbt \ ClassName.scala : 16 : 오류 : 찾을 수 없음 : 값 enteringPhase     enteringPhase (currentRun.flattenPhase.next) {S} fullName의 세퍼레이터

  12. ==============================

    12.당신이 인 IntelliJ, 소스 루트로 표시 디렉토리를 사용하는 경우

    당신이 인 IntelliJ, 소스 루트로 표시 디렉토리를 사용하는 경우

  13. from https://stackoverflow.com/questions/3953468/scala-project-wont-compile-in-eclipse-could-not-find-the-main-class by cc-by-sa and MIT license