Java TWAIN在将项目导出到.jar文件后不再检测已安装的设备

Java TWAIN在将项目导出到.jar文件后不再检测已安装的设备,java,eclipse,twain,Java,Eclipse,Twain,我有一个项目,在jar文件中使用TWAIN库进行扫描。在EclipseIDE中运行项目时,我成功地使用了这个库。正如您在图中所看到的,它检测到我的已安装设备列表,正如我所期望的 但是当我将我的项目导出到一个可运行的JAR文件中并选择“将所需库打包到生成的JAR中”时,它突然停止扫描,当我检查相同的设备列表时,它就像一个空白 考虑到我第一次尝试导出我的项目时,我需要配置我的资源文件夹,以便它可以从JAR中加载图片,我相信这也是一个类似的问题。但是,我不知道确切的原因,因为在这两种情况下,它都会返回

我有一个项目,在jar文件中使用TWAIN库进行扫描。在EclipseIDE中运行项目时,我成功地使用了这个库。正如您在图中所看到的,它检测到我的已安装设备列表,正如我所期望的

但是当我将我的项目导出到一个可运行的JAR文件中并选择“将所需库打包到生成的JAR中”时,它突然停止扫描,当我检查相同的设备列表时,它就像一个空白

考虑到我第一次尝试导出我的项目时,我需要配置我的资源文件夹,以便它可以从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)

有没有可能在我将项目构建到JAR中时,它仍然缺少一些需要打包的dll或文件?

我发现了这个问题。看起来,当我通过Eclipse执行.jar文件时,它实际上使用了我安装的32位JVM,这样,它就能够检索我使用32位驱动程序安装的数据源列表

但由于我使用的是64位机器,当我双击生成的.jar文件时,它将运行安装在我的计算机上的64位JVM。因此,我只需通过
cmd
并通过以下命令执行.jar文件,来更改它使用的JVM版本:

java -jar ScannerTest.jar -d32