Я пытаюсь создать файл jar с проектом Maven, но когда я запускаю файл jar, у меня появляется IOException. Есть ли что-то, что можно добавить в файл pom.xml?
Я использую проект Maven, потому что мне нужно добавить зависимость jfreechart.
Это IOException:
java.io.FileNotFoundException: src\main\resources\images\NoAHMhkB6eE.png (Le che
min d?accès spécifié est introuvable)
at java.io.RandomAccessFile.open0(Native Method)
at java.io.RandomAccessFile.open(Unknown Source)
at java.io.RandomAccessFile.<init>(Unknown Source)
at javax.imageio.stream.FileImageOutputStream.<init>(Unknown Source)
at com.sun.imageio.spi.FileImageOutputStreamSpi.createOutputStreamInstan
ce(Unknown Source)
at javax.imageio.ImageIO.createImageOutputStream(Unknown Source)
at javax.imageio.ImageIO.write(Unknown Source)
at l2j1.Image.createGrayscaleImage(Image.java:69)
образец кода ошибки:
public static Image createGrayscaleImage(String imgPath) throws IOException, NotAPictureException {
String grayscaleImagePath = null ;
BufferedImage image = null ;
File o = new File(imgPath);
if (ImageIO.read(o) == null) {
throw new NotAPictureException(o.getAbsolutePath());
}else {
image = (ImageIO.read(o));
}
BufferedImage grayscaleImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
for (int i = 0; i < image.getWidth() ; i++) {
for(int j = 0; j < image.getHeight(); j++) {
Color c = new Color(image.getRGB(i, j));
int r = c.getRed();
int g = c.getGreen();
int b = c.getBlue();
int gray = (r + g + b)/3;
Color gColor = new Color(gray, gray, gray);
grayscaleImage.setRGB(i, j, gColor.getRGB());
}
}
grayscaleImagePath ="src"+File.separator+"main"+File.separator+ "resources" + File.separator + "images" + File.separator + getImgName(imgPath);
ImageIO.write(grayscaleImage, "png", new File(grayscaleImagePath));
return new Image(grayscaleImagePath, imgPath);
}
Я пытаюсь создать InputStream, например:
InputStream in = Image.class.getClassLoader().getResourceAsStream("src"+File.separator+"main"+File.separator+ "resources" + File.separator + "images" + File.separator + getImgName(imgPath));
grayscaleImagePath ="src"+File.separator+"main"+File.separator+ "resources" + File.separator + "images" + File.separator + getImgName(imgPath);
byte[] buffer = new byte[in.available()];
in.read(buffer);
File targetFile = new File("src/main/resources"+File.separator + getImgName(imgPath));
OutputStream outStream = new FileOutputStream(targetFile);
outStream.write(buffer);
outStream.close();
ImageIO.write(grayscaleImage, "png", targetFile);
return new Image(grayscaleImagePath, imgPath);
но у меня есть NullPointerException для буферного массива.
Спасибо тебе