0

我正在使用 Java 中的 CDF(文件万事达卡使用)文件解析器,我正在使用此处找到的 API 。为了使用这个 API,你需要 jar 文件..

我不明白我是如何得到这个异常的,因为它应该在 getFile() 方法中处理..我用谷歌搜索了一下,我仍然不明白问题是什么..如果有人能指出我的正确那会很棒的方向。通过跟踪堆栈跟踪 .. 对我来说,这似乎是图书馆的问题。

在这里可以找到 api 的链接:http: //cdf.gsfc.nasa.gov/cdfjava_doc/cdf34/

尝试打开 CDF 文件时,运行程序后出现此错误:

    Exception in thread "main" java.lang.UnsatisfiedLinkError: no cdfNativeLibrary in jav
a.library.path                                                                       
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)                  
        at java.lang.Runtime.loadLibrary0(Runtime.java:845)                          
        at java.lang.System.loadLibrary(System.java:1084)                            
        at gsfc.nssdc.cdf.CDFNativeLibrary.<clinit>(CDFNativeLibrary.java:47)        
        at gsfc.nssdc.cdf.CDF.open(CDF.java:426)                                     
        at gsfc.nssdc.cdf.CDF.open(CDF.java:385)                                     
        at FileModel.getFile(FileModel.java:21)                                      
        at FileModel.main(FileModel.java:9)  

这是我的源代码:

import gsfc.nssdc.cdf.*;
import gsfc.nssdc.cdf.util.*;

public class FileModel
{

    public static void main(String[] args)
    {
        getFile();
    }

    public static void getFile()
    {

        try
        {
            CDF cdf = CDF.open("outbound_MidCycle_File.xml");
            //System.out.println(cdf.getID());
        }
        catch(CDFException e)
        {
            System.out.println("ERROR Cannot open CDF File");
        }
        catch(Exception e)
        {
            System.out.println("ERROR");
            System.out.println(e.getMessage());
            e.printStackTrace();
        }

    }

}

我运行的命令如下:

javac -cp '.:cdfjava.jar' FileModel.java
java -cp '.:cdfjava.jar' FileModel
4

3 回答 3

2

You still have to install the CDF Software Distribution on the system prior to using the API. Download the appropriate version from http://cdf.gsfc.nasa.gov/html/sw_and_docs.html and install it - that should clear up the "Native Library" issue (or at least did for me).

于 2013-07-15T17:39:26.180 回答
0

这并不能解决您的全部问题,但应该解决一些谜团:

UnsatisfiedLinkError 是一个Throwable,而不是一个Exception。这就是为什么你的代码没有捕捉到它。替换catch(Exception e)catch(Throwable e)

于 2013-04-10T21:53:13.857 回答
0

你得到的 CDF 库是我们在空间物理学中使用的,用于特定的文件格式,与

于 2020-05-28T17:59:27.290 回答