Я новичок в этом и явственно новичок в java. Я столкнулся с проблемой. У меня очень простая программа, которая пытается создать png и сохранить их в выбранной пользователем папке. byteimage аа частный байт []:Код Eclipse работает отлично, jar не
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);
}
}
байт для метода детские выглядит следующим образом:
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, но я немного озадачен.
Спасибо за ваш ответ. Строковое имя файла является абсолютным, я попробую запустить банку в терминале. – johnpeterman