2017-01-13 3 views
0

私は、スキャンのためにjarファイル内のTWAINライブラリを使用するプロジェクトを持っています。 Eclipse IDEでプロジェクトを実行している間、このライブラリを使用することに成功しました。 thisの画像でわかるように、私は期待どおりにインストールされたデバイスのリストを検出します。TWAINはプロジェクトを.jarファイルにエクスポートした後、インストールされたデバイスを検出しなくなりました。

しかし、プロジェクトをRunnable JARファイルにエクスポートし、 'JARに必要なライブラリをパッケージ化する'を選択すると突然スキャンが停止し、同じデバイスリストを確認するとthisのように空白になります。

初めて私がプロジェクトをエクスポートしようとしたとき、JARの内部から画像をロードできるように自分のリソースフォルダを構成する必要があることを考えれば、これは同様の問題だと思います。しかし、どちらの場合も、TWAINライブラリがロードされたことを示す次のメッセージが返されるため、正確な理由はわかりません。

JarLib.load: Successfully loaded library[jar:rsrc:uk.co.mmscomputing.device.twain.jar!/uk/co/mmscomputing/device/twain/win64/jtwain.dll] from jar file location 

しかし、私は、スキャンしようとすると、これは私が得るものです:

uk.co.mmscomputing.device.twain.TwainIOException: uk.co.mmscomputing.device.twain.TwainSource.select(String name) 
    Cannot find twain data source: 'Lenovo EasyCamera' 
    at uk.co.mmscomputing.device.twain.TwainSource.select(TwainSource.java:239) 
    at uk.co.mmscomputing.device.twain.TwainSourceManager.selectSource(TwainSourceManager.java:82) 
    at uk.co.mmscomputing.device.twain.jtwain.cbexecute(jtwain.java:231) 
    at uk.co.mmscomputing.device.twain.jtwain.nstart(Native Method) 
    at uk.co.mmscomputing.device.twain.jtwain.access$200(jtwain.java:12) 
    at uk.co.mmscomputing.device.twain.jtwain$1.run(jtwain.java:338)uk.co.mmscomputing.device.twain.TwainFailureException: Failed during call to twain source. 
    cc=No Data Source 
    rc=1 
    at uk.co.mmscomputing.device.twain.TwainSourceManager.call(TwainSourceManager.java:27) 
    at uk.co.mmscomputing.device.twain.TwainIdentity.open(TwainIdentity.java:70) 
    at uk.co.mmscomputing.device.twain.TwainSource.open(TwainSource.java:99) 

    at uk.co.mmscomputing.device.twain.TwainSourceManager.openSource(TwainSourceManager.java:93) 
    at uk.co.mmscomputing.device.twain.jtwain.cbexecute(jtwain.java:234) 
    at uk.co.mmscomputing.device.twain.jtwain.nstart(Native Method) 
    at uk.co.mmscomputing.device.twain.jtwain.access$200(jtwain.java:12) 
    at uk.co.mmscomputing.device.twain.jtwain$1.run(jtwain.java:338) 

iはJARの中に私のプロジェクトを構築していたときに、それはまだいくつかのdllファイルまたはファイルを欠けているということ可能であることパッケージ化する必要がありますか?

答えて

0

私はこの問題を発見しました。私はEclipse経由で.jarファイルを実行していたようですが、32ビットJVMを実際に使っていたので、32ビットドライバを使ってインストールしたDataSourceのリストを取得できました。

私は64ビットマシンを使用していますが、生成された.jarファイルをダブルクリックすると、コンピュータにインストールされている64ビットJVMが実行されます。だから、使用しているJVMのバージョンを、cmdで、.jarファイルを実行して、このコマンドで変更しなければなりませんでした。

java -jar ScannerTest.jar -d32 
関連する問題