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

API を使用する前に、CDF ソフトウェア配布をシステムにインストールする必要があります。http://cdf.gsfc.nasa.gov/html/sw_and_docs.htmlから適切なバージョンをダウンロードしてインストールします。これにより、「ネイティブ ライブラリ」の問題が解消されるはずです (または、少なくとも私にとってはそうでした)。

于 2013-07-15T17:39:26.180 に答える
0

これで問題全体が解決するわけではありませんが、謎の一部は解決するはずです。

UnsatisfiedLinkError はThrowableではなくExceptionです。それが、コードがそれをキャッチしていない理由です。に置き換えcatch(Exception e)ますcatch(Throwable e)

于 2013-04-10T21:53:13.857 に答える