Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Windows中Epson POS打印机的JPOS配置问题_Java_Windows_Epson_Javapos - Fatal编程技术网

Java Windows中Epson POS打印机的JPOS配置问题

Java Windows中Epson POS打印机的JPOS配置问题,java,windows,epson,javapos,Java,Windows,Epson,Javapos,我正在尝试在Windows中使用JPO打印,但出现以下异常: jpos.JposException: Could not connect to service with logicalName = Printer: Exception.message=jp.co.epson.uposcommon.util.EpsonJposServiceInstanceFactory at jpos.loader.simple.SimpleServiceConnection.connect(Unknow

我正在尝试在Windows中使用JPO打印,但出现以下异常:

jpos.JposException: Could not connect to service with logicalName = Printer: Exception.message=jp.co.epson.uposcommon.util.EpsonJposServiceInstanceFactory
    at jpos.loader.simple.SimpleServiceConnection.connect(Unknown Source)
    at jpos.BaseJposControl.open(Unknown Source)
...
更多信息:

我正在尝试将我们的Java打印软件从Linux(在Linux中运行良好)移植到Windows。我们使用的是爱普生TM-T70收据打印机。例如,我安装了常规打印机驱动程序,可以立即使用记事本打印东西

现在我安装了Epson JavaPoS ADK。我使用ADK附带的SetupPOS应用程序配置了打印机。我用逻辑设备名“printer”为打印机创建了一个新配置。我保存了所有内容,并创建了jpos.xml文件

当我试着运行我们的应用程序,它执行printer.open(“printer”),其中“printer”是逻辑设备名,printer是POSPrinter实例,我得到了上面的异常

我知道我生成的jpos.xml文件正在被使用,因为如果我提供一个随机的逻辑设备名,我会得到一个不同的异常

我想问题出在SetupPOS的端口配置上。打印机通过USB连接。我尝试了windows打印机属性(ESDPRT001)中显示的端口名,甚至尝试了COM1到COM10的所有组合,但没有任何效果


有人有什么建议吗?谢谢

爱普生JavaPOS ADK的安装程序是。。。啊。。。让我说:“非常特别”。因此,安装会复制JRE(!!!)的ext/lib目录中的一些jar文件(如epsonupos.jar、jposXXX.jar等)(安装JavaPOS驱动程序时必须选择这些文件)。如果我们安装另一个JavaPOS版本,切换到另一个JRE/JDK,使用其他不是Epson或其他东西的打印机,我们也会有一些非常奇怪的效果

您的问题可能是由于不同jar版本或JDK版本之间的冲突或其他原因造成的

编辑:


由于ADK版本1.11.anywhat(不是很确定,但我的意思是1.11.9),您可以指定存储额外jar文件的路径。但是:一些DLL也将在当前最新的ADK版本(1.13.17)中存储到所选JRE的bin目录中。可能这也是使用过的jar和使用过的DLL的不同版本之间的冲突…

我通过向java项目添加以下库路径解决了此问题:

C:\ProgramFiles\EPSON\JavaPOS\lib


C:\Program Files\EPSON\JavaPOS\SetupPOS

使用JavaPOS 1.14.6,在Debian 9 Linux上,我用LD_LIBRARY_路径解决:

$ export LD_LIBRARY_PATH = /opt/EpsonJavaPOS/bin && javapos_application_to_run
在windows 10上复制:

BluetoothIO.DLL
epsonjpos.dll
EthernetIO31.DLL
SerialIO31.dll
USBIO31.DLL
C:\ProgramFiles\EPSON\JavaPOS\bin\

C:\ProgramFiles\Java\jre1.8.0.171\bin\


运行javaPOS应用程序。

我知道响应有点晚,但可能会帮助其他有类似问题的人。 在我的例子中,我正在使用javapos与数据逻辑扫描仪进行交互,我收到了以下消息: 错误:无法打开DL-Magellan-9400i-USB-OEM-Scanner-Scale配置文件,jpos.jpos异常:无法连接到logicalName=DL-Magellan-9400i-USB-OEM-Scanner-Scale的服务: Exception.message=com.dls.jpos.service.dlsscannelinstancefactory

我开始查看从datalogic下载的javapos软件,发现有一个jar文件没有包含在我的类路径(javapos.jar)中,这就是我出错的原因,请查看netx图片:

我想和大家分享一下,以防有人有同样的问题。
(我花了将近两天的时间才完成!!)

有没有找到解决办法?没有。在Windows中,我们使用本机打印机驱动程序,只打印RTF文件。我的建议是使用ESC/POS协议直接与爱普生打印机通信。我已经煞费苦心地写了我自己的私人图书馆来帮助做到这一点。如果你想查看,请告诉我。嘿,谢谢。我不再参与这个项目了。如果你有权限的话,你可以把它开源,那就太好了。我肯定还有其他人对此感兴趣。你们有人发布过ESC/POS库代码吗?我已经在写我自己的(Epson TM-T20),但如果不重新创建轮子就太好了=]