首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用UnsatisfiedLinkError解析Java CDF文件

用UnsatisfiedLinkError解析Java CDF文件
EN

Stack Overflow用户
提问于 2013-04-11 05:47:53
回答 3查看 599关注 0票数 0

我正在用Java语言开发一个CDF(万事达卡使用的文件)文件解析器,我正在使用here发现的API。要使用此API,您需要jar文件。

我不明白我是如何获得这个异常的,因为它应该在getFile()方法中处理。我在谷歌上搜索了一下,我还是不明白问题出在哪里。如果有人能给我指出正确的方向,那就太好了。通过跟踪堆栈跟踪..对我来说,这似乎是图书馆的一个问题。

该接口的链接位于此处:http://cdf.gsfc.nasa.gov/cdfjava_doc/cdf34/

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

代码语言:javascript
复制
    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)  

以下是我的源代码:

代码语言:javascript
复制
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();
        }

    }

}

我运行的命令如下:

代码语言:javascript
复制
javac -cp '.:cdfjava.jar' FileModel.java
java -cp '.:cdfjava.jar' FileModel
EN

回答 3

Stack Overflow用户

发布于 2013-07-16 01:39:26

在使用API之前,您仍然需要在系统上安装CDF软件分发。从http://cdf.gsfc.nasa.gov/html/sw_and_docs.html下载合适的版本并安装它-这应该会解决“本地库”的问题(或者至少对我来说是这样)。

票数 2
EN

Stack Overflow用户

发布于 2013-04-11 05:53:14

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

UnsatisfiedLinkError是Throwable,不是Exception。这就是你的代码没有捕捉到它的原因。用catch(Throwable e)替换catch(Exception e)

票数 0
EN

Stack Overflow用户

发布于 2020-05-29 01:59:27

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15937061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档