2012-01-18 2 views
7

xy 축에 그래프 만 표시하는 Maven 프로젝트가 있습니다. 이 그래프를 Javafx 2.0 선 차트로 변경하여 동일한 데이터를 표시하려고합니다. FEST-javafx-maven 플러그인을 사용해 보았지만 코드를 컴파일 할 수 없습니다. 컴파일러는 모든 javafx.xxx 가져 오기를 찾을 수 없습니다.기존 Maven 프로젝트에 JavaFX 2.0 클래스를 추가하려면 어떻게합니까?

도움을 주시면 감사하겠습니다.

답변

7

업데이트 (2015 년 10 월 6) (오라클 자바 8 +와 함께 제공)

현대 자바 FX 버전은 자바 FX를 사용하기 위해 추가 클래스 경로를 필요로하지 않습니다. JavaFX 런타임은 컴파일 및 실행에 Java가 사용하는 기본 클래스 경로에 있습니다. 즉, 추가 종속물이없는 일반 maven pom.xml 파일이 JavaFX 응용 프로그램을 빌드합니다.

그러나 응용 프로그램에 추가 패키징 기능 (예 : self-contained application으로 배포 할 수있는 기능)을 사용하려면 (타사) JavaFX Maven plugin을 사용하는 것이 좋습니다.

이전 대답

이 답변에 다음 정보는 현재 대부분 오래되고 구식이다.

내가 발견 한 페스트 메이븐 플러그인 (http://fest.easytesting.org/javafx/maven/)에 대한 링크는 JavaFX 1.x 스크립트 프로젝트를 작성하는 도구입니다. JavaFX 2.0과 완전히 다른 호환되지 않는 짐승입니다. JavaFX 2.0을 지원하는 페스트 메이븐 플러그인의 업데이트 된 버전.

오라클에서 메이븐에 대한 공식적인 지원도 공개적으로 호스팅 메이븐 저장소에 자바 FX 2.0 버전은 없습니다.

그러나 저는 과거에 jfxrt.jar에 시스템 범위 종속성을 사용하고 maven에서 JavaFX ant 작업을 (선택적으로) 호출하여 maven을 사용하여 JavaFX 2.0 프로젝트를 성공적으로 구축했습니다.

당신이 JFXPanel를 통해 기존의 스윙 응용 프로그램에서 그래프를 삽입하는 경우, 당신은 자바 FX 개미 작업을 사용할 필요가 없습니다. 시스템 종속성으로 자바 FX 런타임에서 jfxrt.jar 추가 또는 수동으로 비 시스템 종속성을 범위 사용하도록 받는다는 저장소에 설치합니다.

수동으로 필요한 자바 FX 2.0 런타임 항아리를 설치하는 명령의 예는 다음과 같습니다

mvn install:install-file -Dfile="C:\Program Files\Oracle\JavaFX 2.1.0 SDK\rt\lib\jfxrt.jar" -DgroupId=com.oracle.javafx -DartifactId=javafx -Dversion=2.1 -Dpackaging=jar 

위의 명령을 실행 한 후, 당신 받는다는 치어과 프로젝트 컴파일에 jfxrt.jar 파일에 종속성을 추가 당신은 자바 FX 애플리케이션 클래스를 확장하고 당신이해야 다음, 응용 프로그램이 내장 Webstart를, 브라우저를 통해 배포 또는 자바 FX 설치 알고 클릭 항아리로 패키지하려면

<dependency> 
    <groupId>com.oracle.javafx</groupId> 
    <artifactId>javafx</artifactId> 
    <version>2.1</version> 
</dependency> 

: 모든 자바 FX API 참조를 해결한다 http://code.google.com/p/willow-browser/source/browse/pom.xml는 이러한 적응을 보여줍니다 - 관련 자바 FX 2.0 개미 작업을 실행하도록 pom.xml 파일을 적응.

이 스레드 자바 FX 2에 대해 설명합니다.0 받는다는 지원 ​​및 추가 배경 정보 및 샘플 제공 : 저도 같은 문제가 있었다

+0

도움 주셔서 감사합니다. –

+0

내가 실제로하려고하는 것은 그래프가있는 기존 JPanel을 JFX2.0 선 차트로 교체하는 것입니다. JFrame 전체를 다시 그려 넣지 않고도이 작업을 할 수 있습니까? –

+0

예, JPanel을 JFXPanel로 바꾸십시오. documentation => http://docs.oracle.com/javafx/2.0/api/javafx/embed/swing/JFXPanel.html – jewelsea

3

을 여기 내 솔루션입니다 : (자바 7u7를 사용하여 자바 FX 인 경우

은 jdk/jre에 통합 됨) :

<dependency> 
     <groupId>javafx</groupId> 
     <artifactId>javafx</artifactId> 
     <version>2.1</version> 
     <scope>system</scope> 
     <systemPath>${java.home}/lib/jfxrt.jar</systemPath> 
    </dependency> 

자바의 이전 버전 :

<dependency> 
     <groupId>javafx</groupId> 
     <artifactId>javafx</artifactId> 
     <version>2.1</version> 
     <scope>system</scope> 
     <systemPath>${env.JAVAFX_HOME}\rt\lib\jfxrt.jar</systemPath> 
    </dependency> 

는 그리고 당신은 자바 FX의 홈 디렉토리에 시스템 변수 JAVAFX_HOME을 설정해야합니다.

0

JavaFX Maven plugin을 사용해보십시오. 이것은 classpath에 javafx를 추가하고 JavaFX 응용 프로그램을 빌드하고 Windows/Mac/Linux 실행 파일을 생성하며 더블 클릭 가능한 JAR 및 JNLP 파일을 작성합니다.

0

JDK 1.7을 사용하면 다음과 같은 mvn 목표를 수행해야합니다.

mvn com.zenjava:javafx-maven-plugin:2.0:fix-classpath 

이 명령은 JRE의 클래스 경로를 변경하고 JAVA_HOME \ lib \ ext 디렉토리에 jfxrt.jar를 복사합니다.

자세한 정보를 여기에 추가로 살펴 보자 : 당신의 치어 파일 내에서 JavaFX Maven Plugin

는 다음과 같은 종속 구성을 추가해야합니다.

 <dependency> 
     <groupId>javafx</groupId> 
     <artifactId>jfxrt</artifactId> 
     <version>2.2</version> 
     <!-- <version>${javafx.min.version}</version> --> 
     <scope>system</scope> 
     <systemPath>${java.home}/lib/ext/jfxrt.jar</systemPath> 
    </dependency> 
관련 문제