2012-03-21 49 views
0

我是新來的,有點新來java。 我遇到了問題。 我有一個非常簡單的程序,試圖創建PNG並將它們保存在用戶選定的文件夾中。 byteimage是AA專用字節[]:Eclipse代碼運行良好,罐子不是

byteimage = bcd.createPNG(300, 140, ColorSpace.TYPE_RGB, Color.BLACK, Color.BLACK); 

的setpath()被調用的瀏覽按鈕的動作偵聽器內部

private void setPath() { 

    JFileChooser pathchooser = new JFileChooser(); 
    pathchooser.setMultiSelectionEnabled(false); 
    pathchooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
    pathchooser.setApproveButtonMnemonic(KeyEvent.VK_ENTER); 
    pathchooser.showDialog(this, "OK"); 

    File f = pathchooser.getSelectedFile(); 
    if (f != null) { 
     filepath = f.getAbsolutePath(); 
     pathfield.setText(filepath); 
     } 
} 

字節至PNG方法看起來像這樣:

public void byteToPNG(String filename) { 
     try { 
     InputStream in = new ByteArrayInputStream(byteimage); 
     BufferedImage bufferedimg = ImageIO.read(in); 
     ImageIO.write(bufferedimg, "png", new File(filename)); 
    } catch (IOException e) { 
     System.out.println(e.getMessage()); 
    } 
} 

這種方法如下所示:

byteToPNG(pathfield.getText() + System.getProperty("file.separator") + textfield.getText() + ".png"); 

textfield.getText()設置png的實際名稱。 構造內部,默認文件路徑被設置:

filepath = System.getProperty("user.dir"); 
pathfield.setText(filepath); 

的代碼運行在Eclipse細,並將其在所需位置產生一個PNG圖像。 不幸的是,導出爲jar之後,它會啓動,但是當按下生成png的按鈕時,沒有任何反應。我認爲在InputStream或BufferedImage有問題,但我有點困惑。

回答

0

如果傳遞給byteToPNG的String fileName不是絕對的(即以「C:/ foo/bar/etc」格式寫入),那可能是破壞jar的原因。您還可以嘗試使用以下命令在終端中運行jar文件: java -jar myJarFile.jar。 這將導致控制檯窗口保持打開,同時運行的jar應用程序將打印所有應用程序輸出(包括任何異常)。

+0

感謝您的回答。字符串文件名是絕對的,我會嘗試在終端中運行jar。 – johnpeterman 2012-03-21 21:58:24

相關問題