2017-12-11 7 views
7

NetBeans의 maven 프로젝트에 hdf.hdf5lib.H5를 가져 오려고합니다. 여기에 제안 그것은 수입 라인maven 프로젝트의 hdf5

import hdf.hdf5lib.H5; 

로이있다 "

java.lang.ExceptionInInitializerError 
Caused by: java.lang.RuntimeException: Uncompilable source code - package hdf.hdf5lib does not exist 

넷빈즈 이미 가져 오기 줄에 말함으로써 그것에 대해 나에게 경고 packadge을 그러나 https://support.hdfgroup.org/products/java/JNI3/jhi5/index.html

,이 예외를 throw excist하지 않는다 ". 그래서 나는 "Maven 저장소에서 의존성을 검색"하도록했다. 그것은 뭔가를 찾아 수행하고 내 pom.xml 파일이 추가됩니다

<dependency> 
    <groupId>org.hdfgroup</groupId> 
    <artifactId>hdf-java</artifactId> 
    <version>2.6.1</version> 
    <type>jar</type> 
</dependency> 

불행하게도 그것은 가져 오기 라인 "excist하지 않습니다 packadge"에러 예외에 경고를 유지합니다. pom.xml에이 추가 사항은 아무 것도없는 것 같습니다.

나는이 모든 것을 초보자이기 때문에 해결책이 분명 할 수도 있지만 찾을 수는 없습니다. 이러한 질문은 이미 지난 2012 년과 2014 년 사이에 날짜,하지만 나에게 도움이되지 않았다 :

http://hdf-forum.184993.n3.nabble.com/maven-repository-for-java-release-td4026938.html

http://hdf-forum.184993.n3.nabble.com/HDF-Java-on-Maven-td4025772.html

add hdf5 libs (java & c++) to public maven repository?

가 ddarellis에 의해 제안이 버전 문제가 될 수 있습니다. 두 가지 옵션이있는 것 같습니다.

  • HDF 자바 3.3.2 및 HDF5-1.8.19 (HDFView 버전 2.14)
  • 자바 HDF 개체 패키지 3.0.0 및

나는 모두를 시도 할 것이다 HDF5-1.10, 그러나 Maven에서 HDF Java 2.6.1을 사용하라는 제안은 잘못되었습니다.

이 게시물은 jarhdf5-3.3.2.jar을 종속성에 추가하는 데 유용했습니다.

https://forums.netbeans.org/post-62903.html#62903

  1. 은 Maven 프로젝트에서 열기 대화 상자
  2. 확인, 일부의 groupId, artifactId를 및 버전을 확인하고이를 채우기 "의존성이 추가".
  3. 종속성이 pom.xml에 추가되어 maven 프로젝트의 "Libraries"노드 아래에 표시됩니다.
  4. Lib 노드를 마우스 오른쪽 버튼으로 클릭하고 "수동으로 이슈 설치"경로에 Jar를 로컬에 설치해야합니다 2 단계에서 입력 한 좌표로 메이븐 레포.

그래, HDF5 1.8.19 HDFView2.14를 설치하고 종속성에 jarhdf5-3.3.2를 추가했습니다. 내가 실행하려고하면 그러나 나는이 오류가 :에서

Caused by: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 
at hdf.hdf5lib.H5.<clinit>(H5.java:230) 
+0

프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "정리 및 빌드"를 선택하십시오. – klonq

답변

5

link 당신은 상단에이를 볼 수 있습니다 게시 한 :

매우 중요 변경 : 버전 3.0 이상의 JHI5 패키지 모든 HDF 라이브러리는 "hdf.hd5flib"로 호출되며 "ncsa"는 이 제거되었습니다. 이전 버전의 JHI5를 사용하는 소스 코드는이 새로운 구현을 반영하도록 으로 변경해야합니다. 당신은 당신이 (v2.6.1)입니다 버전 3.0에서 낮은 라이브러리 버전을 사용 당신이 전면 패키지 이름의 ncsa .hdf.hdf5lib.H5을 포함해야하는 경우

은 이것이 의미하는 바입니다.

자습서 here을 찾을 수 있습니다.

+0

v2.6.1을 사용하지 않습니다.이 버전은 maven이 알고있는 버전입니다. 가장 최근 버전의 HDFView를 다운로드했습니다. (v3.0) HDF5 v1.10을 사용합니다. – Gelliant

+0

jarhdf5-3.3.2.jar을 추가하면 가져 오기 작업이 잘됩니다. import hdf.hdf5lib.H5; 이 라이브러리를 빌드 경로에 추가합니까? 또한 pom 파일에서 종속성을 제거하는 것을 고려하십시오. – ddarellis

5

참조하는 link에는 오래된 예제가 들어 있습니다. 대신 these examples을 사용해야합니다.

다음
ncsa.hdf.hdf5lib 

이 HDF5 파일 열기의 작동 예는 다음과 같습니다 :

ddarellis에 의해 지적

, 올바른 패키지입니다

import ncsa.hdf.hdf5lib.H5; 
import ncsa.hdf.hdf5lib.HDF5Constants; 
import ncsa.hdf.hdf5lib.exceptions.HDF5Exception; 

public class Foo { 

    public void openHdf5File() { 
    int flags = HDF5Constants.H5P_DEFAULT; 
    int access = HDF5Constants.H5F_ACC_RDWR; 

    try { 
     int file_id = H5.H5Fopen("myFile.hdf", flags, access); 
    } catch (HDF5Exception ex) { 
     System.err.println("Failed to open HDF5 file"); 
    } 
    } 

} 

당신이 가지고있는 받는다는 종속성이 정확하고 최신입니다 이용 가능 : maven central.

+0

3.2.2는이 가져 오기 hdf.hd5flib을 사용하는 사이트에서 다운로드 할 때만 사용할 수 있지만 조금 혼란 스럽다고 생각합니다. – ddarellis

+0

예, 있습니다. 2010 년부터 maven에는 3.3.2 버전과 2.6.1 버전이 있습니다. Boris와 @ddarellis에 도움을 주셔서 감사합니다. – Gelliant

관련 문제