1

我有 javapos 的问题。当我尝试从打印机 Epson TM-T20 打印“Hello JavaPOS”的代码示例程序时

POSPrinterControl113 ptr = (POSPrinterControl113)new POSPrinter();

JPanel contentPane;
JPanel jPanel_reciept = new JPanel();
TitledBorder titledBorder1;
GridBagLayout gridBagLayout1 = new GridBagLayout();
GridBagLayout gridBagLayout2 = new GridBagLayout();
JButton jButton_Print = new JButton();

/**Constract "Frame"*/
public Step1Frame() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
        jbInit();
    }
    catch(Exception e) {
        e.printStackTrace();
    }
}

/**Form the component*/
private void jbInit() throws Exception  {
    //setIconImage(Toolkit.getDefaultToolkit().createImage(Step1Frame.class.getResource("[Your Icon]")));
    contentPane = (JPanel) this.getContentPane();
    titledBorder1 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(134, 134, 134)),"Receipt");
    contentPane.setLayout(gridBagLayout1);
    this.setSize(new Dimension(300, 180));
    this.setTitle("Step 1  Print \"Hello JavaPOS\"");
    jPanel_reciept.setLayout(gridBagLayout2);
    jPanel_reciept.setBorder(titledBorder1);
    jButton_Print.setText("Print");
    jButton_Print.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            jButton_Print_actionPerformed(e);
        }
    });
    contentPane.add(jPanel_reciept, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(15, 0, 0, 0), 20, 20));
    jPanel_reciept.add(jButton_Print, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 10, 5, 10), 130, 0));
}

/**
 * Outline     The processing code required in order to enable
 *            or to disable use of service is written here.
 * @exception JposException  This exception is fired toward the failure of
 *                          the method which JavaPOS defines.
 */
/**When the window was closed*/
protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
        this.closing();
    }
    /**When the window open*/
    else if (e.getID() == WindowEvent.WINDOW_OPENED) {
        // JavaPOS's code for Step1
        try {
            //Open the device.
            //Use the name of the device that connected with your computer.
            ptr.open("POSPrinter");

            //Get the exclusive control right for the opened device.
            //Then the device is disable from other application.
            ptr.claim(1000);

            //Enable the device.
            ptr.setDeviceEnabled(true);
        }
        catch(JposException ex) {
        }
    }
    // JavaPOS's code for Step1--END
}

//***********************Button*************************************************
/**
 * Outline      The code for using the most standard method "PrintNormal"
 *             to print is described.
 */
void jButton_Print_actionPerformed(ActionEvent e) {
    // JavaPOS's code for Step1
    try{
        //printNormal(int station, String data)
        //A string is sent by using the method "printNormal", and it is printed.
        // "\n" is the standard code for starting a new line.
        // When the end of the line have no "\n",printing by
        //  using the method "printNormal" doesn't start, may be.
        ptr.printNormal(POSPrinterConst.PTR_S_RECEIPT,"Hello JavaPOS\n");
    }
    catch(JposException ex){
    }
    // JavaPOS's code for Step1--END
}

//***********************Method*************************************************
/**
 * Outline     The code to finish a service.
 */
void closing(){
    // JavaPOS's code for Step1
    try{
        //Cancel the device.
        ptr.setDeviceEnabled(false);

        //Release the device exclusive control right.
        ptr.release();

        //Finish using the device.
        ptr.close();
    }
    catch(JposException ex){
    }
    // JavaPOS's code for Step1--END
    System.exit(0);
}

在输出中显示 3x jpos/res/jpos.properties 文件未找到

你能帮我解决这个问题吗?

4

1 回答 1

0


如果你得到这个非常古老的问题,我在任何地方都找不到正确的答案

jpos/res/jpos.properties file not found

你有两种方法:

  1. 忽略此错误并从代码中设置属性

     System.setProperty("jpos.config.populatorFile", "jposxml.cfg");  
     System.setProperty("jpos.util.tracing.TurnOnNamedTracers", "JposServiceLoader,SimpleEntryRegistry,SimpleRegPopulator,XercesRegPopulator");  
     System.setProperty("jpos.util.tracing.TurnOnAllNamedTracers", "ON"); 
     System.setProperty("jpos.loader.serviceManagerClass", "jpos.loader.simple.SimpleServiceManager")
    
  2. 提取 jposXXX.jar(通常 XXX 表示版本),
    将 jpos.properties 和 jpos.xml 文件添加到文件夹 jposXXX/jpos/res/,
    将文件夹 jposXXX 转换为 jar 文件
    ,例如通过终端中的命令jar cvf jposXXX.jar jposXXX
    将 jar 文件放入 app/libs / 文件夹
    添加到您的 gradle 依赖项行

    implementation fileTree(dir: 'libs', include: ['*.jar'])
    请享用

于 2022-01-06T15:55:15.343 回答