2012-04-30 8 views
0

스칼라에서 스윙을 사용하여 간단한 GUI 애플리케이션을 만들었고 Eclipse의 "스칼라 애플리케이션으로 실행"이 잘 작동합니다. 나는 SBT를 빌드 도구로 사용했고, 애플리케이션 로직을위한 클래스 파일과 객체와 같은 이름의 파일에 싱글 톤 객체를 만들었는데, main() 메소드를 사용하여 애플리케이션을 시작했다.Eclipse의 스칼라 스윙 프로젝트에서 실행 가능한 Jar 파일 만들기

내가 말했듯이, 간단하게 일식 (eclipse) 내에서 시작합니다. 그러나 JAR 파일을 생성하지 않습니다 (내보내기 -> ...). 이 작업을 수행하는 간단한 방법이 있습니까?

나는 최신의 안정된 스칼라 버전을 가지고 있기 때문에, internetz의 많은 팁은 시대에 뒤 떨어진 것으로 보입니다. 이 블로그

http://garyboone.com/2009/06/creating-single-file-runnable-jars-in-scala-and-eclipse/?wscr=1280x1024

심지어 마지막 코멘트가 작동하지 않습니다. 필자는 기술적 인 지식없이 다른 사람들과 공유 할 수있는 독립 실행 형 JAR 파일 만 원합니다. 어떤 아이디어입니까?

편집 : 나는 마지막으로 문제를 해결했습니다. 문제는 Eclipse가 빌드 경로에 스칼라 라이브러리를 보여 주지만 이 실제로는이 아닌 것입니다. 벌레일지도 모르겠다. 마지막으로, scala-library.jar와 scala-swing.jar를 외장 항아리로 빌드 경로에 직접 추가했습니다. Eclipse가 이미 포함되어 있음을 보여주는 사실을 무시하고 - 모든 것이 작동합니다.

+0

오류 메시지가 표시됩니까? 어느? 그렇지 않다면 정확히 무엇이 잘못 될까요? 독립형이란 무엇을 의미합니까? 'scala yourJar.jar' 또는'java yourJar.jar'로 실행 가능합니까? –

+0

그래, 위의 게시 된 링크의 마지막 주석에있는 Java Starterclass와 정확히 같습니다. 내보내기 -> Runnable Jar가 작동하면 .jar 파일이 생성됩니다. doubleclick : 아무 일도 일어나지 않습니다. java -jar : InvocationTargetException으로 시작하십시오. 스칼라 객체가 발견되지 않습니다. scala 명령으로 .jar를 시작하면 작동합니다. 빌드 경로를 다시 확인했습니다. 빌드 경로에 Scala-Librarie (2.9.2) *가 있습니다. 어떤 아이디어? 그것은 임의의 사용자가 그것을 doubleklicks 때 실행해야합니다, 그는 단지 자바 런타임이 필요합니다. – Hisako

+0

당신은 당신의 대답을 받아 들일 수 있습니다. 유사한 문제가있는 다른 사용자가 귀하의 질문을 찾고 허용 된 대답이있는 경우 알고 싶을 수 있기 때문에 그것은 나쁜 스타일이 아닙니다. 그 응답 패턴을 염두에두고 질문을하지 않는 한, 그것은 절대적으로 좋습니다 - 그뿐만 아니라, 그것은 행동을 원한 것입니다. –

답변

0

솔루션을 찾았습니다. 질문에서 EDIT를 참조하십시오. 나는 가능한 대안으로 곧 놀 것이다. 그러나 일식 관련 재료는 지금 나를 위해 작동한다. 어쩌면 스칼라 IDE의 사람들은 이클립스에서 스칼라 애플 리케이션 패키징을 살펴볼 수 있었지만 여전히 뛰어 넘을 수있는 농구가 있었다. :)

+0

나는 Eclipses build-jar-facility의 무거운 사용자가 아니지만 항아리에 외국 항아리를 포장하지 않는다고 생각합니다. 응용 프로그램간에 매우 많은 jar 파일이 공유되므로 jar 파일을 20 번 업데이트하지 않으려하거나 deprecated jar 파일을 사용하지 않아도됩니다. –

+0

Eclipse 용 스칼라 IDE 플러그인에 대한 주제가 있다고 생각합니다 :) 진심으로 저는 다른 사용자를 위해 스칼라 라이브러리를 병에 담아 야합니다. 개인적으로 선택 사항을 볼 수 없습니다. 어떤 것?). 어쩌면 최신 라이브러리를 다운로드하는 최적화 된 설치 프로그램을 만드는 등등 ...하지만 내 경우에는, 이것은 과도한 것 같습니다. – Hisako

+0

나는 그렇게 생각하지 않는다. 당신은 일반적으로 자신이 제작 한 것들을위한 항아리를 만들지 제 3 자의 libs를위한 것이 아닙니다. Java 용 jar를 생성 할 때 jre/lib/rt.jar을 자신의 jar 파일에 추가하지는 않지만 대상 컴퓨터에 jre/lib/rt.jar을 추가 할 필요가 있습니다. commons.jar (apache)도 추가하지 말고 클라이언트가 스스로 구성 할 것을 기대하십시오. –

0

retronyms onejar SBT 플러그인을 살펴보십시오. https://github.com/retronym/sbt-onejar. 그것은 또한 좋은 설명과 함께 간단하게 보인다.

+0

꽤 흥미 롭지 만 여기에 다른 의견을 적었을 때, 나는 * 정말 * 일식에서 그것을 할 해결책을 찾는다. – Hisako