2017-01-21 26 views
0

Windows 7マシンにJava1.8.0_112(jdkとjre 64bitの両方)をインストールしました。Java1.8.0_112とApache POIのJNIエラー

私は.BATファイルを経由して私のプログラムのいずれかを実行しようとしていますと、次のエラーを取得しています:

Error: A JNI error has occurred, please check your installation and try again 
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/use 
rmodel/Workbook 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source) 
    at java.lang.Class.privateGetMethodRecursive(Unknown Source) 
    at java.lang.Class.getMethod0(Unknown Source) 
    at java.lang.Class.getMethod(Unknown Source) 
    at sun.launcher.LauncherHelper.validateMainClass(Unknown Source) 
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Workbook 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 7 more 

私はアンインストールし、JREを再インストールし、私は私のマシンを再起動したしました。私は必要な図書館をすべて指していることを確認しました。

POIブックについてこのエラーが表示されていますが、私は必要なすべてのApacheライブラリと適切な依存関係を持っているため、なぜこれが問題なのか分かりません。私が言ったように、NetBeansのjdkの魅力のように走るが、.bat経由で私のデスクトップ上で実行すると完全に爆発する

このプログラムは、1.8.0_112のjdkを使っているNetbeans8環境JDK8バイナリです。

次のように私の.batファイルは、私が読みやすくするために改行を追加した、次のとおりです。

C:\jre1.8.0_112\bin\java -cp 
"T:\Netbeans Projects\MatchReport\build\classes; 
S:\ADSJava\Jars\lib\poi-3.15.jar; 
S:\ADSJava\Jars\lib\poi-ooxml-3.15.jar; 
S:\ADSJava\Jars\lib\poi-ooxml-schemas-3.15.jar; 
C:\Users\Jessica\Desktop\lib\xmlbeans-2.6.0.jar; 
S:\ADSJava\Jars\lib\dom4j-1.6.1.jar; 
S:\ADSJava\Jars\lib\commons-io-2.5.jar; 
S:\ADSJava\Jars\lib\junit-4.12.jar; 
S:\ADSJava\Jars\lib\commons-codes-1.10.jar; 
S:\ADSJava\Jars\lib\commons-collections4-4.1.jar; 
C:\Users\Jessica\Desktop\lib\DataServer.jar; 
C:\Users\Jessica\Desktop\lib\ucanaccess-3.0.4.jar; 
C:\Users\Jessica\Desktop\lib\jackcess-2.1.3.jar; 
C:\Users\Jessica\Desktop\lib\xbeans.jar; 
C:\Users\Jessica\Desktop\lib\commons-logging-1.0.4.jar; 
C:\Users\Jessica\Desktop\lib\hsqldb.jar; 
C:\Users\Jessica\Desktop\lib\commons-lang-2.4.jar" 
ads.ADSMatchReport2 
"Toyota Of Turnersville Control.txt" 2>&1> MatchReportResults.txt 

すべてのヘルプやガイダンスは大幅にあなたに感謝、感謝されるだろう!

+0

これは違いがあるが、これらのネットワークマップ共有(T:、S :)はわからないのですか?あなたはそれらの瓶をCに移動するとどうなりますか?異なる/古いJDKを使用するとどうなりますか?他のpoi-relatedライブラリのない非常に基本的なPOIの例だけを使用するとどうなりますか? – kiwiwings

+0

ネットワークドライブ 'S:'が正しくマップされていないようです。 'CMD'を開いて' S: '[Enter]と入力してから' dir ADSJava' [Enter]を押すと、ディレクトリ一覧が表示されますか? –

+0

両方のキウイウィングとAxelこれらのドライブは両方ともネットワークドライブであり、両方がマップされています。両方ともやりとりするプログラムがあり、ADSJavaでディレクトリリストを表示すると7つのファイルと25個のサブディレクトリが表示されます。私はポージャーをCに載せることを見て、何が起こるか見るつもりです。皆さんのおかげでフィードバックに感謝します! –

答えて

0

解決策が見つかりました。 .batファイルは、私が混在したドライブにライブラリを持っているのが好きではありませんでした。すべてのライブラリをC:またはネットワークS:ドライブに移動すると問題が解決しました。

Netbeansは複数の場所でライブラリを処理することができましたが、.batファイルは処理できませんでした。