[java]想导入相对路径下的一张图片,路径该怎么写

C、C++和Java语言
回复
chenwl
帖子: 509
注册时间: 2008-09-06 10:04
送出感谢: 0
接收感谢: 0

[java]想导入相对路径下的一张图片,路径该怎么写

#1

帖子 chenwl » 2009-04-09 11:49

代码: 全选

turtle = new RotatableImage("/home/chenwl/abc.png", this); // TODO 修改路径
目录结构如下

代码: 全选

src |
     - UI \
            |--drawingBoard.java
            |--others.java
     +test |
     -resource \
                      |--abc.png
                      |--others.png
该怎么改阿?
头像
libralibra
帖子: 401
注册时间: 2008-02-23 17:31
送出感谢: 0
接收感谢: 1 次
联系:

Re: [java]想导入相对路径下的一张图片,路径该怎么写

#2

帖子 libralibra » 2009-04-09 16:49

src放在那里啊?
. 是当前路径
.. 是上级路径

假设你调用图片是UI下的drawingBoard.java,那就写(一个点代表UI/,两个点代表src)

代码: 全选

turtle = new RotatableImage("../resource/abc.png", this); // TODO 修改路径
My Blog: matlab, ubuntu, python
http://goo.gl/GDIO
chenwl
帖子: 509
注册时间: 2008-09-06 10:04
送出感谢: 0
接收感谢: 0

Re: [java]想导入相对路径下的一张图片,路径该怎么写

#3

帖子 chenwl » 2009-04-09 17:09

libralibra 写了:src放在那里啊?
. 是当前路径
.. 是上级路径

假设你调用图片是UI下的drawingBoard.java,那就写(一个点代表UI/,两个点代表src)

代码: 全选

turtle = new RotatableImage("../resource/abc.png", this); // TODO 修改路径
/home/chenwl/Studio/myproject/src --> 这是src文件夹
/home/chenwl/Studio/myproject/src/UI/DrawingBoard.java --> 这个类需要导入图片文件
/home/chenwl/Studio/myproject/src/resource/abc.png --> 这是被导入的图片文件

我试了下"../resource/abc.png"不行,可能是因为eclipse执行/opt/java/bin/java 就把/opt/java/bin/当当前目录了 :em20

用绝对路径则正常

代码: 全选

Exception in thread "main" java.lang.IllegalArgumentException: Width (-1) and height (-1) cannot be <= 0
	at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:999)
	at java.awt.image.BufferedImage.<init>(BufferedImage.java:312)
	at UI.draw.RotatableImage.<init>(RotatableImage.java:34)
	at UI.DrawingBoard.<init>(DrawingBoard.java:91)
	at UI.MainFrame.initComponent(MainFrame.java:34)
	at UI.MainFrame.<init>(MainFrame.java:29)
	at test.TestUI.main(TestUI.java:12)
zxkane
帖子: 103
注册时间: 2007-11-02 10:46
送出感谢: 0
接收感谢: 0

Re: [java]想导入相对路径下的一张图片,路径该怎么写

#4

帖子 zxkane » 2009-04-10 16:20

具体的解释查文档吧
RotatableImage.class.getProtectionDomain().getCodeSource().getLocation.getFile()
chenwl 写了:
libralibra 写了:src放在那里啊?
. 是当前路径
.. 是上级路径

假设你调用图片是UI下的drawingBoard.java,那就写(一个点代表UI/,两个点代表src)

代码: 全选

turtle = new RotatableImage("../resource/abc.png", this); // TODO 修改路径
/home/chenwl/Studio/myproject/src --> 这是src文件夹
/home/chenwl/Studio/myproject/src/UI/DrawingBoard.java --> 这个类需要导入图片文件
/home/chenwl/Studio/myproject/src/resource/abc.png --> 这是被导入的图片文件

我试了下"../resource/abc.png"不行,可能是因为eclipse执行/opt/java/bin/java 就把/opt/java/bin/当当前目录了 :em20

用绝对路径则正常

代码: 全选

Exception in thread "main" java.lang.IllegalArgumentException: Width (-1) and height (-1) cannot be <= 0
	at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:999)
	at java.awt.image.BufferedImage.<init>(BufferedImage.java:312)
	at UI.draw.RotatableImage.<init>(RotatableImage.java:34)
	at UI.DrawingBoard.<init>(DrawingBoard.java:91)
	at UI.MainFrame.initComponent(MainFrame.java:34)
	at UI.MainFrame.<init>(MainFrame.java:29)
	at test.TestUI.main(TestUI.java:12)
zxkane
帖子: 103
注册时间: 2007-11-02 10:46
送出感谢: 0
接收感谢: 0

Re: [java]想导入相对路径下的一张图片,路径该怎么写

#5

帖子 zxkane » 2009-04-10 16:22

如果你的java code是plugin的话,有更简单的,
Bundle.getResource("resource/abc.png").openStream()
chenwl
帖子: 509
注册时间: 2008-09-06 10:04
送出感谢: 0
接收感谢: 0

Re: [java]想导入相对路径下的一张图片,路径该怎么写

#6

帖子 chenwl » 2009-04-10 16:49

现在解决了,在eclipse里面
相对路径为"src/resource/abc.png"

这样在eclipse里可以运行了,但是Export为jar文件后就不行了,运行不了,估计还是路径的问题,因为用绝对路径就没问题。
zxkane
帖子: 103
注册时间: 2007-11-02 10:46
送出感谢: 0
接收感谢: 0

Re: [java]想导入相对路径下的一张图片,路径该怎么写

#7

帖子 zxkane » 2009-04-10 17:58

打成jar后,abc.png被包含在jar文件中,它本身在文件系统中并不存在,这样用相对路径当然不行
chenwl
帖子: 509
注册时间: 2008-09-06 10:04
送出感谢: 0
接收感谢: 0

Re: [java]想导入相对路径下的一张图片,路径该怎么写

#8

帖子 chenwl » 2009-04-10 20:01

zxkane 写了:打成jar后,abc.png被包含在jar文件中,它本身在文件系统中并不存在,这样用相对路径当然不行
那该怎么做?我要生成可执行文件的话。
zxkane
帖子: 103
注册时间: 2007-11-02 10:46
送出感谢: 0
接收感谢: 0

Re: [java]想导入相对路径下的一张图片,路径该怎么写

#9

帖子 zxkane » 2009-04-14 22:36

把jar混淆?
如果就是普通jar包的话,ZipFile中找到你的png文件得到ZiprEntry,通过getInputStream拿到inputstream...
chenwl
帖子: 509
注册时间: 2008-09-06 10:04
送出感谢: 0
接收感谢: 0

Re: [java]想导入相对路径下的一张图片,路径该怎么写

#10

帖子 chenwl » 2009-04-15 11:23

zxkane 写了:把jar混淆?
如果就是普通jar包的话,ZipFile中找到你的png文件得到ZiprEntry,通过getInputStream拿到inputstream...
ZipFile中? getInputStream ... 不明白,能讲清楚点吗?
zxkane
帖子: 103
注册时间: 2007-11-02 10:46
送出感谢: 0
接收感谢: 0

Re: [java]想导入相对路径下的一张图片,路径该怎么写

#11

帖子 zxkane » 2009-04-15 11:27

回复

回到 “C/C++/Java”