我做的一个小游戏,完成后,想把它打成jar包,写了manifest.mf文后,就用Eclipse一步一步导了下来,成功后,双击运行,整个游戏页面都是黑色的,我所加的一些背景图片都不能看到
请问是什么原因?
谢谢解答。。

解决方案 »

  1.   

    Eclipse帮你把classpath都配好了。所以运行没有问题。
    我忘记manifest.mf中怎么定义了。但是通过类似game.bat也可以运行。在这个bat加上需要的包路径就可以啦。
      

  2.   

    manifest.mf
    我就写了
    Manifest-Version: 1.0
    Main-Class: jegg.JEgg(含有Main方法的类)你说的bat怎么弄啊?
    谢谢
      

  3.   

    以前也出了同样的问题,直接运行OK,导出后就找不到图片。。
    可以看下jdk的demo,里面有个含图片的notepad例子,印象中是在*.properties定义图片路径解决的。。
      

  4.   

    java -jar -cp .;a.jar;b.jar test.jar
      

  5.   

    晕死,忘记给你解释了。
    -cp 就是环境变量classpath 的缩写。后面的a.jar , b.jar 是你程序中需要的外部引用的包。中间用分号隔开。
    最后的test.jar 是你的真正要运行的Jar包了
      

  6.   

    我要把所有引用的包都给弄进去吗你写的这个
    java -jar -cp .;a.jar;b.jar test.jar
    是生成jar文件吧?
      

  7.   

    但我程序中没有引用什么jar文件啊
      

  8.   

    java -jar 是运行一个Jar文件。
    你做的不是小游戏吗,那可一定用到图形化的东西吗?
    我建议你再从新导出一遍,看看其中的资源是不是都选中了。
      

  9.   

    读取 JAR 里面的图片,部分代码
    URL u = this.getClass().getClassLoader().getResource("/file/1234.gif"); 
    InputStream is =  this.getClass().getClassLoader().getResourceAsStream("/file/1234.gif")  
      

  10.   

    其实楼主的问题就是相对路径的问题,
    刚搜到这个:http://dev.csdn.net/article/39/39681.shtm
    所以说*.properties用来解决这种问题显得更方便更便于维护给出JDK Demo:
    D:\jdk1.6.0_01\demo\jfc\Stylepad 类似于这个路径,楼主还是看看吧,类似的问题,JAVA开发者是怎么做的,其中也涉及国际化
      

  11.   

    如果你是用jianghuxiaoxiami给出的方法加载资源文件的话,URL u = this.getClass().getClassLoader().getResource("/file/1234.gif"); 请务必检查("/file/1234.gif"); file之前/的不可少,另,/file/1234.gif要确保在jar里的文件结构也是/file/1234.gif
    如果你是getresource("file/1234.gif")的方式加载,则务必确保1234.gif在jar里的路径应该是/yourpackage/file/1234.gif
      

  12.   

    使用classloader来load resource