我使用批处理文件从NSSM的.jar创建了Windows服务。我从eclipse中将代码导出为jar文件。使用库处理:将所需的库提取到生成的jar中。
该程序使用Java的WatchService来检查是否在文件夹中创建了文件。它还使用Apache PDFBox API修改在文件夹中创建的PDF。
我能够使jar文件作为Window的服务运行,但没有修改PDF。单独的jar文件可以正常运行,但是当它是一种服务时,它什么也不做。
这是我创建服务的方式:
pushd "<path to jar>"
nssm.exe install "<service Name>" "C:\Program Files\Java\jre1.8.0_211\bin\java.exe" -jar <jar name>
nssm.exe set "<service Name>" AppDirectory "<path to jar>"
该程序将打开PDF并在PDF顶部添加文本字段。 实际结果是该服务不执行任何操作。
更新: Window Service不显示JOptionPane的原因是因为该服务在后台运行,不允许JOptionPane出现。
Allow service to interact with desktop
上面的选择不允许显示JOptionPane。