2011-02-04 100 views
0

我在我的应用程序文件夹中:图像文件夹内有图像,我有运行的.jar文件。我需要从图像文件夹中加载图片。我有方法从URL负载的图片,我从本地文件夹加载应用程序中的图片

String path=System.getProperty("user.dir")+File.separatorChar+"images"+File.separatorChar+"first.jpg"; 
try{ 
URL url=new URL(path); 
} 
catch(Exception exc){ 
} 

尝试它,但我得到的错误java.net.MalformedURLException:没有协议:/home/images/first.jpg。 要添加什么像前缀,或者有更好的方式来加载URL图像?

+0

不要捕获泛型异常...... – OscarRyz 2011-02-04 18:06:24

+0

..并且当你确实捕获异常(任何类型)时,不要忽略它们。记录它们或转储堆栈跟踪。忽略异常就像试图用一只胳膊绑在背后进行调试,盲目折叠。 – 2011-02-04 18:29:07

回答

1

对于本地文件的协议是“文件://”,然而在Windows上,您将需要添加一个额外的“/”

您可以在URL中这样开始时指定此:

String path="file:///" + System.getProperty("user.dir")+File.separatorChar+"images"+File.separatorChar+"first.jpg"; 
+0

不,协议只有两个斜线。然而,Unix路径通常以另一个开头。在Windows中,您需要在驱动器前添加一个额外的斜线。 – OrangeDog 2011-02-04 17:51:27

+0

@OrangeDog谢谢。我已经更新了你的反馈。 – Aaron 2011-02-05 17:56:14

1

为什么你必须从网址加载图片?为什么不从路径加载它?这是你想要的?

反正你为什么不试着这么做:

String path= ="file://"+System.getProperty("user.dir")+File.separatorChar+"images"+File.separatorChar+"first.jpg"; 
1

理想的情况下,这些图片应该是罐内,并通过使用getResource()getResourceAsStream()一个类加载器加载。

1

应该String path = file://"+ System.get...etc. ~

但是可能如果您加载它像它会更好:

URL url = this.getClass().getResouce("first.png"); 

你添加图片到classpath中。

相关问题