Я использую файл jar StdDraw, чтобы показать изображения (StdDraw.picture ("путь")) в моем проекте, и хочу экспортировать его в исполняемый файл jar.Я использую затмение, чтобы сделать это.
Я добавил папку с изображениями в путь сборки.Я знаю, что есть некоторые решения для добавления изображений в jar-файл без ошибок, но я не могу найти подходящее для java-проекта, использующего StdDraw.StdDraw.picture () требует строку имени файла (путь к изображению).
Это код в моем основном классе:
public static void main(String [] args) {
StdDraw.setXscale(-50, WIN_WIDTH+50);
StdDraw.setYscale(0, WIN_HEIGHT);
do{
StdDraw.clear(StdDraw.BLACK);
StdDraw.setPenColor(StdDraw.WHITE);
StdDraw.picture(WIN_WIDTH/2, WIN_HEIGHT/2+80, "images/logo.png");
StdDraw.text(WIN_WIDTH/2, WIN_HEIGHT/2-40, "Press SPACE to start !" );
StdDraw.show(20);
}while(!StdDraw.isKeyPressed(KeyEvent.VK_SPACE));
...
Когда я запускаю созданный файл JAR, есть некоторыеошибки.
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:61)
Caused by: java.lang.IllegalArgumentException: image images/logo.png not found
at edu.princeton.cs.introcs.StdDraw.getImage(StdDraw.java:1266)
at edu.princeton.cs.introcs.StdDraw.picture(StdDraw.java:1331)
at Pacman.Jeu.main(Jeu.java:290)
... 5 more