目录结构是有两个文件在同一个目录里
一个是go.jar,一个是config.xml
go.jar的入口函数是里面默认包里的go.class里的我在go.class里有这样的代码:
Document document = new SAXReader().read(go.class.getClassLoader().getResourceAsStream("config.xml"));
结果是
Nested exception: java.net.MalformedURLException
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
如果用"./config.xml"和"../config.xml"都是一样的.而以前用new File("./config.xml")居然可以读到,但是只能在WINDOWS下,LINUX下就不行了我需要一种能在WINDOWS和LINUX下都能读取的方法
一个是go.jar,一个是config.xml
go.jar的入口函数是里面默认包里的go.class里的我在go.class里有这样的代码:
Document document = new SAXReader().read(go.class.getClassLoader().getResourceAsStream("config.xml"));
结果是
Nested exception: java.net.MalformedURLException
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
如果用"./config.xml"和"../config.xml"都是一样的.而以前用new File("./config.xml")居然可以读到,但是只能在WINDOWS下,LINUX下就不行了我需要一种能在WINDOWS和LINUX下都能读取的方法
windows上你是不是double click那個jar包啊,這樣的話你程序context的"."就意味着你jar包的當前目錄,如果你在cmd中以(java,javac等沒有加入到%path%中)java的存放目錄以java -jar來運行你的jar包,那麼"."就意味是java.exe的目錄,可以以config.xml的絕對路徑來讀取吧
obj.getClass().getProtectionDomain().getCodeSource().getLocation().getPath()
看看这篇文章:
http://blog.csdn.net/sunyujia/archive/2008/09/21/2957481.aspx
如/config.xml
/./config.xml
/../config.xml
/config/config.xml