java-print映像代码在linux-cent os服务器中部署时不起作用

java-print映像代码在linux-cent os服务器中部署时不起作用,java,file,printing,centos,Java,File,Printing,Centos,以下代码在windows上运行时工作正常,但如果在服务器中部署并通过windows系统访问,则会引发运行时异常“没有可用的打印机服务。”。此代码中是否存在任何问题,或者您是否可以提出任何替代方案 package com.rajsoft.CAF.APController; import java.io.FileInputStream; import javax.print.Doc; import javax.print.DocFlavor; import javax.print.Do

以下代码在windows上运行时工作正常,但如果在服务器中部署并通过windows系统访问,则会引发运行时异常“没有可用的打印机服务。”。此代码中是否存在任何问题,或者您是否可以提出任何替代方案

 package com.rajsoft.CAF.APController;

 import java.io.FileInputStream;

 import javax.print.Doc;
 import javax.print.DocFlavor;
 import javax.print.DocPrintJob;
 import javax.print.PrintService;
 import javax.print.PrintServiceLookup;
 import javax.print.SimpleDoc;
 import javax.print.attribute.HashPrintRequestAttributeSet;
 import javax.print.attribute.PrintRequestAttributeSet;
 import javax.print.attribute.standard.Copies;

 public class SamplePrint {
   static public void main(String args[]) throws Exception {
     PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
     pras.add(new Copies(1));
     PrintService pss[] =     PrintServiceLookup.lookupPrintServices(DocFlavor.INPUT_STREAM.GIF, pras);
if (pss.length == 0)
  throw new RuntimeException("No printer services available.");
PrintService ps = pss[0];
System.out.println("Printing to " + ps);
DocPrintJob job = ps.createPrintJob();
//FileInputStream fin = new FileInputStream("C:/SignImage.GIF");
 FileInputStream fin = new FileInputStream("C:/SignImages/Hyderabad.GIF");
Doc doc = new SimpleDoc(fin, DocFlavor.INPUT_STREAM.GIF, null);
job.print(doc, pras);
fin.close();
   }
 }

我猜这就是你要的味道。您可以使用null格式,还是只需调用“lookupDefaultPrintService()”并查看是否为您调用代码的环境返回了任何默认服务。

此:
“C:/SignImages/Hyderabad.GIF”
URI可能?在服务器中,我已将C:替换为/root,文件位于root中。它显示“没有可用的打印机服务”例外。但打印机是否在本地windows jdk系统中运行良好?在客户端或服务器上执行?项目是在winXP系统中使用eclipse开发的,当我在本地运行时工作正常…但是如果部署在服务器上的包不工作(不检测打印机/甚至也不检测默认打印机)