Ich bin auf diese Frage auf SO gestoßen.
Java application runs properly in Eclipse, but not as .jar
Ich habe keine Bilder in meinem code.I ein lauffähiges JAR-Datei in der folgenden Art und Weise erstellt,
So exportieren Sie ein Eclipse-Projekt mit PDF-Generierungscode (itext)
- Rechtsklick auf Projekt,
- Klicken Sie auf Export,
- wählen " Runnable JAR-Datei“,
- Extract erforderliche Bibliotheken in generierten JAR
Wenn ich die .jar-Datei auf meinem Desktop ausführe, wird die PDF-Datei erstellt. Aber es zeigt den folgenden Fehler
Adobe Reader nicht ‚Ergebnis-itext.pdf‘ öffnen konnte, weil es entweder keine unterstützter Dateityp oder weil die Datei
beschädigt wurde, ist
My-Code :
try {
PdfWriter w = new PdfWriter("Result-itext.pdf");
PdfDocument d = new PdfDocument(w);
Document doc = new Document(d);
/** Added **/
Image img = new Image(ImageDataFactory.create(logo));
img.setHorizontalAlignment(HorizontalAlignment.CENTER);
doc.add(img);
/** Added **/
doc.add(new Paragraph("Test Name : Hello World").setTextAlignment(TextAlignment.CENTER));
doc.add(new Paragraph("Maximum Marks : 20").setTextAlignment(TextAlignment.CENTER));
doc.add(new Paragraph("RESULTS").setBold().setTextAlignment(TextAlignment.CENTER));
PdfFont font = PdfFontFactory.createFont(FontConstants.HELVETICA_OBLIQUE);
Table t = new Table(3);
t.setWidthPercent(70);
t.setHorizontalAlignment(HorizontalAlignment.CENTER);
t.setFont(font);
Cell cell = new Cell().add("User-ID").setTextAlignment(TextAlignment.CENTER).setFont(font);
t.addCell(cell);
cell = new Cell().add("User-Name").setTextAlignment(TextAlignment.CENTER).setFont(font);
t.addCell(cell);
cell = new Cell().add("Marks").setTextAlignment(TextAlignment.CENTER).setFont(font);
t.addCell(cell);
PdfFont font1 = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
t.setFont(font1);
ArrayList<String> a = new ArrayList<String>();
for(int i=0;i<3;i++){
a.add(String.valueOf(i));a.add("jack");a.add(String.valueOf(i+10));
}
for(int i=0;i<9;i++){
cell = new Cell().add(a.get(i)).setTextAlignment(TextAlignment.CENTER);
t.addCell(cell);
}
doc.add(t);
doc.close();
JOptionPane.showMessageDialog(null, "Created file");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Ich habe einige meiner Fehler korrigiert. Dann habe ich den Bildanzeigecode hinzugefügt. Es zeigt jetzt 'java.io.FileNotFoundException C: \ Benutzer \ Pradeep \ Desktop \ resources \ logo.jpg (Das System kann den Pfad nicht finden angegeben) ' – Pradeep
Versuchen Sie zu überprüfen, ob das logo.jpg existiert oder nicht. Existiert –
https://docs.oracle.com/javase/7/docs/api/java/io/FileNotFoundException.html. JavaDoc sagt, die Ausnahme wird ausgelöst, selbst wenn versucht wird, eine schreibgeschützte Datei zum Schreiben zu öffnen –