2016-12-29 2 views
0

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(); 
     } 

Antwort

0

Paar Zeiger mit Ihrem Problem

    helfen
  1. Vergleichen Sie die zwei PDF-Dateigröße, die erste von Eclipse generiert, die zweite aus der JAR-Datei generiert. Gibt es einen Größenunterschied, wenn dies der Fall ist, dann bedeutet das, dass dem generierten Jar etwas fehlt, was das Eclipse-Projekt hat.
  2. Führen Sie das generierte Glas durch einen Doppelklick aus? Wenn "Ja", wird es auch dann nicht angezeigt, wenn ein Fehler in einem Programm in der JAR-Datei auftritt, da das Fenster sofort geschlossen wird (vorausgesetzt, es handelt sich hierbei nicht um eine Swing/AWT GUI-Anwendung). Deshalb schlage ich es von Eingabeaufforderung auszuführen, wie: java -jar xyz.jar

Hoffentlich diese beiden Ihr Problem lösen sollte.

+0

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

+0

Versuchen Sie zu überprüfen, ob das logo.jpg existiert oder nicht. Existiert –

+0

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 –

Verwandte Themen