'主'是包含所有类的包,在其中一个类中我尝试加载background.png文件。在我的Eclipse项目中,我将资源放在" res /"文件夹,我添加到构建路径以包含它。当我尝试使用
时new File("background.png");
无法找到该文件。 当我使用
MyClass.class.getClass().getClassLoader().getResource("background.png");
它仍然无法找到该文件。
答案 0 :(得分:1)
打包在jar中的文件无法作为MyClass.class.getClass().getClassLoader().getResource("background.png");
对象访问。
当你尝试
时ClassLoader
您实际上使用的java.lang.Class
main.MyClass
而非MyClass.class.getClassLoader().getResource("background.png");
可能无法找到资源(如果它是系统类加载器)。试试
public class RDB {
File file;
String filepath;
JAXBContext jaxbContext;
Marshaller jaxbMarshaller;
RDB(){
filepath = "RDB.xml";
file = new File(filepath);
StreamResult result = new StreamResult(file);
try {
jaxbContext = JAXBContext.newInstance(triple.class);
jaxbMarshaller = jaxbContext.createMarshaller();
} catch (JAXBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
void addToXml(triple t){
try {
// output pretty printed
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(t, file);
jaxbMarshaller.marshal(t, System.out);
} catch (JAXBException e) {
e.printStackTrace();
}
}
public static void main(String argv[]) {
RDB r = new RDB();
r.addToXml(new triple(1,2,3));
r.addToXml(new triple(4,5,6));
}
代替。