Ошибка: невозможно получить доступ к jarfile_jarfile_name
Когда я выполняю свою программу, нажав Shift+F6
, он хорошо печатает штрих-код, но когда я создаю файл JAR, выполнив следующие
- Щелкните правой кнопкой мыши по названию проекта.
- свойства
- Выберите упаковку
- Выберите "Построить JAR после компиляции" и "Копировать зависимые библиотеки", затем нажмите "ОК".
- Очистить и построить проект
Shift+F11
Он создает JAR-файл под dist, когда я выполняю его в терминале
java -jar BarcodePrintTest.jar
это показывает ошибку как
Ошибка: невозможно получить доступ к jarfile BarcodePrintTest.jar
Ниже мой код
import net.sourceforge.barbecue.Barcode;
import net.sourceforge.barbecue.BarcodeFactory;
import net.sourceforge.barbecue.BarcodeException;
import net.sourceforge.barbecue.output.OutputException;
import javax.print.attribute.PrintServiceAttribute;
import javax.print.attribute.AttributeSet;
import javax.print.attribute.HashPrintServiceAttributeSet;
import javax.print.attribute.standard.PrinterName;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import java.awt.*;
import java.awt.print.PageFormat;
import java.awt.print.PrinterJob;
import java.awt.print.PrinterException;
import java.awt.print.Printable;
import java.io.File;
import net.sourceforge.barbecue.BarcodeImageHandler;
public class BarcodePrintTest implements Printable {
public static void main (String[] args) {
BarcodePrintTest barCodePrinter = new BarcodePrintTest();
barCodePrinter.execute();
}
private void execute() {
try {
PageFormat pFormat = new PageFormat();
//pFormat.setOrientation(PageFormat.LANDSCAPE);
PrinterJob pJob = PrinterJob.getPrinterJob();
pJob.setPrintable(this, pFormat);
//PrintServiceAttribute printerName = new PrinterName("Zebra LP2824", null);
PrintServiceAttribute printerName = new PrinterName("Zebra-TLP2844", null);
AttributeSet attr = new HashPrintServiceAttributeSet(printerName);
PrintService[] printServiceArray = PrintServiceLookup.lookupPrintServices(null, attr);
PrintService printService = printServiceArray[0];
pJob.setPrintService(printService);
pJob.print();
} catch (PrinterException e) {
System.err.println("Error occurred in execute");
}
}
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) {
//adjust the following variables for positioning and size of barcode printout
double scale = 0.57;
int barHeight = 50;
int barWidth = 1;
int x = 140;
int y = 0;
Graphics2D g2 = (Graphics2D) graphics;
g2.translate((int)(pageFormat.getImageableX()), (int)(pageFormat.getImageableY()));
g2.scale(scale, scale);
if (pageIndex == 0) {
Barcode barcode = null;
try {
String barcodedata="100001017SRM12345678";
barcode = BarcodeFactory.createCode128(barcodedata);
} catch (BarcodeException e) {
e.printStackTrace();
}
try {
barcode.setFont(new Font(Font.SANS_SERIF, Font.PLAIN, 12));
barcode.setDrawingText(true);
barcode.setDrawingQuietSection(true);
barcode.setResolution(96);
barcode.setBarHeight(barHeight);
barcode.setBarWidth(barWidth);
barcode.draw(g2, x, y);
} catch (OutputException e) {
e.printStackTrace();
}
return Printable.PAGE_EXISTS;
} else {
return Printable.NO_SUCH_PAGE;
}
}
}