[英]get the printers in java from the AS400 server
我無法在 AS400 上安裝打印機。
我試過:
PrintService[] services = PrinterJob.lookupPrintServices();
沒有找到服務。
我還搜索了 JTOpen API。 我什么也沒找到。
有人可以幫助我嗎?
PrinterJob.lookupPrintService()
默認為DocFlavor.SERVICE_FORMATTED.PAGEABLE
。 可能是您沒有支持這種口味的打印機。
嘗試運行此命令以檢查是否找到任何打印機
PrintService[] allServices =
PrintServiceLookup.lookupPrintServices(null, null);
for (PrintService ps : allServices)
{
System.out.println(ps " supports :");
DocFlavor[] flavors = ps.getSupportedDocFlavors();
for (int i = 0; i < flavors.length; i+</i>)
{
System.out.println("\t" + flavors[i]);
}
}
並檢查它們支持哪種口味。
另外,您在iSeries上嗎? OS 400? 哪個Java?
我遇到了同樣的問題並最終找到了解決方案:根據Java Print Service IBM 文檔,您必須將 2 個 jar 添加到 Java 的類路徑中才能檢測 AS400 上的打印機(和打印)。
這些 jar 文件應位於
/QIBM/ProdData/OS400/jt400/lib/jt400Native.jar
/QIBM/ProdData/OS400/Java400/ext/ibmjps.jar
在我的例子中,AS400 上的jt400Native.jar
對於我們的應用程序(Java 1.1 與 Java 1.8)來說太舊了,導致應用程序啟動時崩潰。 我從https://mvnrepository.com/artifact/net.sf.jt400/jt400獲取了最新的一個並且它有效。
如果您從 jar 運行您的應用程序,則不能使用-cp
和-classpath
,這些選項將被忽略,因為類路徑是通過清單文件設置的。 就我而言(SpringBoot Java 8 Gradle 項目),我使用
bootJar {
manifest {
attributes(
'Class-Path': './ibmjps.jar ./jt400.jar'
)
}
}
將這些 jar 添加到清單文件中的類路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.