JAVA 相对路径取不到文件?

[复制链接]
查看11 | 回复4 | 2011-6-17 06:31:29 | 显示全部楼层 |阅读模式
importjavax.swing.*;
importjava.net.URL;
importjava.applet.*;

publicclassDisplayImagePlayAudioextendsJApplet{
privateAudioClipaudioClip;

publicDisplayImagePlayAudio(){
URLurlForImage=getClass().getResource(\"/image/denmark.gif\");
add(newJLabel(newImageIcon(urlForImage)));

URLurlForAudio=getClass().getResource(\"/audio/denmark.mid\");
audioClip=Applet.newAudioClip(urlForAudio);
audioClip.loop();
}

publicvoidstart(){
if(audioClip!=null)audioClip.loop();
}

publicvoidstop(){
if(audioClip!=null)audioClip.stop();
}

/**Mainmethod*/
publicstaticvoidmain(String[]args){
//Createaframe
JFrameframe=newJFrame(\"DisplayImagePlayAudio\");

//Createaninstanceoftheapplet
DisplayImagePlayAudioapplet=newDisplayImagePlayAudio();
applet.init();

//Addtheappletinstancetotheframe
frame.add(applet,java.awt.BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Displaytheframe
frame.setSize(200,500);
frame.setVisible(true);
}
}

报错:Exceptioninthread\"main\"java.lang.NullPointerException
        atjavax.swing.ImageIcon.init(UnknownSource)
        atDisplayImagePlayAudio.init(DisplayImagePlayAudio.java:11)
        atDisplayImagePlayAudio.main(DisplayImagePlayAudio.java:32)

PS:我的audio文件夹和image文件夹是和src同级目录
回复

使用道具 举报

千问 | 2011-6-17 06:31:29 | 显示全部楼层
既然是相对路径\"/image/denmark.gif\"这个表示就不对了路径最前面加/表示的是绝对路径,你将
\"/image/denmark.gif\"改为\"image/denmark.gif\"试试看
\"/audio/denmark.mid\"改为\"audio/denmark.mid\"
试试看吧!









<h4class=\"ask\">追问


试过了。。也不行
回复

使用道具 举报

千问 | 2011-6-17 06:31:29 | 显示全部楼层
URLurlForImage=getClass().getResource(\"/image/denmark.gif\");
换成URLurlForImage=this.getClass().getClassLoader().getResource(\"image/denmark.gif\");
URLurlForAudio=getClass().getResource(\"/audio/denmark.mid\");
换成URLurlForAudio=this.getClass().getClassLoader().getResource(\"audio/denmark.mid\");
试试看

我把你的程序复制出来运行是没问题的啊!你是用eclipse编写的么?

我把你程序导入eclipse里运行了错误一样,你需要把audio和image文件夹放入到src目录下才能找到文件,文件需要和源文件在同一目录下,以后导入你要的文件时先选中src后再导入,就在同一目录下了!
回复

使用道具 举报

千问 | 2011-6-17 06:31:29 | 显示全部楼层
B中的类?
是指DisplayImagePlayAudio这个类吗?
读取的代码怎么改呢?
回复

使用道具 举报

千问 | 2011-6-17 06:31:29 | 显示全部楼层
谢谢了,程序文件是在src下面
刚试了把image和audio文件夹放在bin目录下就ok了。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行