2017-12-11 155 views
7

मैं नेटबीन में अपने मैवेन प्रोजेक्ट में hdf.hdf5lib.H5 आयात करने की कोशिश कर रहा हूं। के रूप में यहाँ का सुझाव दिया यह आयात लाइनmaven परियोजना में hdf5

import hdf.hdf5lib.H5; 

के रूप में इस है: packadge

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

NetBeans पहले से ही आयात लाइन पर कह कर मुझे इसके बारे में चेतावनी दी है ": https://support.hdfgroup.org/products/java/JNI3/jhi5/index.html

हालांकि, यह इस अपवाद फेंकता उत्साहित नहीं है "। इसलिए मैंने इसे "मैवेन रिपॉजिटरीज़ पर खोज निर्भरता" दी। यह कुछ लगता है करता है और यह मेरे pom.xml को यह कहते हैं:

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

दुर्भाग्य से यह आयात लाइन "packadge excist नहीं है" और त्रुटि अपवाद पर चेतावनी रहता है। ऐसा लगता है कि 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

मैं दोनों की कोशिश करेंगे, लेकिन एचडीएफ जावा 2.6.1 का उपयोग करने के लिए मेवेन से सुझाव गलत है।

यह पोस्ट निर्भरता के लिए jarhdf5-3.3.2.jar जोड़ने के लिए सहायक था।

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

  1. Maven परियोजना में खोलने संवाद
  2. कुछ ग्रुप, artifactId और संस्करण बना लो और उन्हें भरने, ठीक है "निर्भरता जोड़ें"।
  3. निर्भरता pom.xml में जोड़ दिया जाएगा और Maven परियोजना के "पुस्तकालय" नोड
  4. राइट-क्लिक करें लिब नोड और "मैन्युअल विरूपण साक्ष्य स्थापित", जार जार करने के लिए पथ को भरने स्थानीय करने के लिए स्थापित किया जाना चाहिए के अंतर्गत दिखाई देंगे चरण 2 में प्रवेश निर्देशांक के साथ मेवेन रेपो)।

ठीक है, इसलिए मैंने एचडीएफ 5 1.8.1 9 एचडीएफवीव 2.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.hd5flib" के रूप में सभी HDF पुस्तकालय कॉल की, ध्यान दें कि "NCSA" कर दिया गया है हटा दिया। स्रोत कोड है जो JHI5 के पिछले संस्करणों में इस्तेमाल किया इस नए कार्यान्वयन प्रतिबिंबित करने के लिए बदला जाना चाहिए।

क्या इसका मतलब यह है अगर आप v3.0 जो आप कर रहे हैं (v2.6.1) से कम पुस्तकालय संस्करण का उपयोग आप में सामने पैकेज नाम की ncsa .hdf.hdf5lib.H5 शामिल करने की आवश्यकता है।

आप ट्यूटोरियल here पा सकते हैं।

+0

मैं v2.6.1 का उपयोग नहीं करते, यह सिर्फ संस्करण कि maven जानता है। मैंने एचडीएफवी व्यू का नवीनतम संस्करण डाउनलोड किया। (V3.0) HDF5 v1.10 का उपयोग करता है – Gelliant

+0

आयात jarhdf5-3.3.2.jar जोड़ा जा रहा है कर रहे हैं ठीक: आयात hdf.hdf5lib.H5; क्या आप इस पुस्तकालय को बिल्ड पथ में जोड़ते हैं? पोम फ़ाइल से निर्भरता को हटाने के लिए भी विचार करें। – ddarellis

5

link में आपके पास पुराने उदाहरण हैं, आपको इसके बजाय these examples का उपयोग करना चाहिए।

ddarellis द्वारा बताया के रूप में, सही पैकेज है:

ncsa.hdf.hdf5lib 

यहाँ एक HDF5 फ़ाइल को खोलने का एक काम उदाहरण है:

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 निर्भरता आप सही है और नवीनतम है maven central पर उपलब्ध है।

+0

3.2.2 केवल अपनी साइट जो इस आयात hdf.hd5flib का उपयोग करता है में डाउनलोड के लिए उपलब्ध है, लेकिन मुझे लगता है कि वह एक छोटा सा उलझन में ... – ddarellis

+0

हाँ, मैं हूँ। 2010 से एक संस्करण 3.3.2 है, और संस्करण 2.6.1 है। आपकी मदद के लिए धन्यवाद, बोरिस और @ddarellis। – Gelliant

संबंधित मुद्दे