如何使用stdDraw在从Java项目导出的可运行JAR文件中显示图像?

时间:2019-05-23 02:19:26

标签: java stddraw

我正在使用StdDraw jar文件在项目中显示图片(StdDraw.picture(“ path”)),并希望将其导出到可运行的jar文件中。我用Eclipse来做。

我已在构建路径中添加了图像文件夹。 我知道有一些解决方案可以将图像添加到jar文件中而不会出现错误,但是我找不到使用StdDraw的Java项目的正确解决方案。 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

0 个答案:

没有答案