Jar打包中的问题!那位遇见过?

rox 2001-11-26 09:06:23
我做的一个Java程序,源文件和图片文件放在一个目录下的。
用Jbuildb打包后,图片文件没法一起打入,做的是自动运行的Jar文件。
文件放在图片的目录下,可以运行。没有图片的目录就死机状!
手动将图片打入相同的目录没有用,请问那位大仙碰见过这种问题的?
有什么办法解决?(不希望该源文件,图片太多了)
打包上要注意什么?
...全文
169 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
rox 2001-12-04
  • 打赏
  • 举报
回复
何必那么认真呢?
我只是跟大家讨论讨论Java图片打包的问题嘛!(菩提的骂法)
TO:aprim(四楞子)
你的骂法,真的很含蓄,我建议你到武汉去修炼修炼。

照这样说,那么,我编程的时候就必须考虑加入getClass().getResource()。
可是这样,我的JBuilder5就不能正常的编译,总是说什么初始化不成功。
当然,不是这个程序。
哎!Java的问题之多……
我看是没有人遇见我的问题。
aprim 2001-12-01
  • 打赏
  • 举报
回复
K,没有游戏规则你还玩个吊!!你怎么不说不用编程就tmd能做软件呢!!
aprim 2001-12-01
  • 打赏
  • 举报
回复
K,没有游戏规则你还玩个吊!!你怎么不说不用编程就tmd能做软件呢!!
rox 2001-12-01
  • 打赏
  • 举报
回复
当然,但我是想能够打到包里面,并且也显示图片。
l_fish 2001-11-30
  • 打赏
  • 举报
回复
你自己用jar手动打包就可以的.
我都自己打的...
bsd 2001-11-30
  • 打赏
  • 举报
回复
呵呵,图片不打到包里试过吗?
rox 2001-11-30
  • 打赏
  • 举报
回复
import java.awt.*;
import java.awt.event.*;

public class ImageTestApplication extends Frame
{
Insets insets;
Image im;

static void main(String[] args)
{
ImageTestApplication app = new ImageTestApplication();
app.show();
}
public ImageTestApplication()
{
super("Image Test");
im = Toolkit.getDefaultToolkit().getImage("rmb.jpg");

addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent event)
{
dispose();
System.exit(0);
}
});
}

public void addNotify()
{
super.addNotify();
insets = getInsets();
setBounds(100,100,217 + insets.left, 321 + insets.top);
}
public void paint(Graphics g)
{
g.drawImage(im,insets.left,insets.top,this);
}
}
我使用的方法,就是手动的打包!只有将getImage("rmb.jpg")改成getImage(getClass().getResource("rmb.jgp"))就可以将图片打入包中并且正常显示。这种方法介绍的已经很多了。
但我希望能够有一种方法,不改源代码。只是打包的方式上有什么特别的地方,就可以使我的图片文件正常显示。
rox 2001-11-29
  • 打赏
  • 举报
回复
Sorry!
贴子贴错了地方。
我明天有时间就贴上来。
rox 2001-11-29
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/topic/389/389867.shtm
自己看看
javamap 2001-11-28
  • 打赏
  • 举报
回复
Your question doesn't need a Big Lobster to answer. Give us more information!
rox 2001-11-27
  • 打赏
  • 举报
回复
哎!
现在问题怎么越来越难得到答案了。
高手都到那个论坛去了。
介绍一下,小弟也去!
rox 2001-11-27
  • 打赏
  • 举报
回复
O!
This example 我已经看到过,我希望的是not change source code。
Please!
Who know?
Every Big Lobster.
Thank you!
javamap 2001-11-27
  • 打赏
  • 举报
回复
You can just put all your files into a sub-directory and jar the directory.

Here is an example:
Assuming .class files is in "currentDir\com\test\", pictures in "currentDir\com\pic".
You run "jar myFile.jar com". Then all files under "com" goes to myFile.jar.
To read a file, you can just say
InputStream i = getClass().getResourceAsStream(fileName);

Or you can use "File" to open it.

To bsd:
Make sure your java classes are in right package. In this case, all java files have to be in the package "com.test".
rox 2001-11-27
  • 打赏
  • 举报
回复
我也是从别人那里偷师的,别打扰我敢正事!
全文如下:(成功了,并且自己的也都测试成功了)

如何让自己做的 jar 文件变得可以运行:
在 jar 文件的 manifest 文件中可以指定当 JVM 运行 jar 文件时调用的类,这个类必须有 main().
-----------------------------------
import java.awt.*;
import java.awt.event.*;
public class MyClass {
public static void main(String[] args) {
Frame f = new Frame();
f.addWindowListener
(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
);
f.add(new Label("Hello world"));
f.setSize(200,200);
f.setVisible(true);
}
}
----------------------------------------------
然后创建这个manifest 文件(manifest.mft)
----------------------------------------------
Manifest-Version: 1.0
Main-Class: MyClass
Classpath: .\MyJar.jar

(注意:结尾一定要一个空白行,不要问为什么,我也不知道。rox)
----------------------------------------------
在 dos 窗口下运行
jar cvfm MyJar.jar manifest.mft MyClass.class
创建 jar 文件
运行 java -jar MyJar.jar 测试
或在 explorer 内用鼠标双击 MyJar.jar 可以运行程序
如果在环境变量内加入
set PATHEXT=.EXE;.BAT;.CMD;.JAR
并且 MyJar.jar 在 path 下
则在 dos 窗口内运行 MyJar 则会调用 java -jar MyJar.jar
bsd 2001-11-27
  • 打赏
  • 举报
回复
请教一下你的自动运行的Jar文件是怎么做的?
我的一次都没成功,按大家所说的做法却依旧提示
找不到main:(
rox 2001-11-27
  • 打赏
  • 举报
回复
没有人知道吗?
wolfsquare 2001-11-27
  • 打赏
  • 举报
回复
请给出你的目录结构,即图像文件相对class文件的路径,还有包名.
sui102 2001-11-27
  • 打赏
  • 举报
回复
关注!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧