A. java工程打包部署到linux下根據url找jar包里的文件找不到,請教。
方法不抄對
你看,你第一襲個里沒有jar出現.
file:/E:/ainbs2_ln/html/WEB-INF/classes/com/syncdatamanage/bo/SyncDataLog.bo
這相當於在本在磁碟里找文件,而不是jar里.
那這樣,你的第二種方法就不對了.
URL url = getClass().getResource("/org/xxxxxxxx/bbbbb/cccccc");
你是這樣的嗎?
如果這樣,是不對的,這樣只是取得當前運行目錄下的文件.
如果想得到jar文件里的文件,需要用
JarFile jar = new JarFile(file);
相當於解析壓縮包的方式來找到文件.
B. 生成可運行jar包,老是顯示找不到指定文件
你都生成了JAR文件了,那就意味著相對路徑就是變了
樓主建議你用絕對路徑, 例如 "C:\Users\haha\Desktop\OBJC\0.txt"
這樣就不會有錯了。。。
有些編譯器不同就會出錯
出錯就用 "C:\\Users\\haha\\Desktop\\OBJC\\0.txt"
C. 我用eclipse打得jar包怎麼運行時找不到資源文件
如果只是讀取的話解決很簡單,讀取jar文件中的內容是有特定語法的。做個比較
1.普通windows文件系統:
file:\D:\MapMole\img\map\map.jpg //你一定要在這個路徑上有文件才能讀寫
2.jar文件中的文件:
jar:file:\D:\MapMole.jar!\img\map\map.jpg
區別一眼就看出來了(2中有jar前綴,並且有'!')。
給你一個獲取輸入流的方法:
URL url=new URL("jar:file:\D:\MapMole.jar!\img\map\map.jpg");
InputStream is=url.openStream();
但我看你的意思是要往jar裡面寫入數據。
我不建議這么做,你最好把上傳的文件放到另一個文件或文件夾中,就像沒有哪個exe文件把上傳的文件放到自己的exe中。我沒這么做過,如果你硬要往裡寫肯定會遇到「文件已在另一個系統中打開」之類的錯誤。
如果你喜歡寫到jar這種壓縮文件中其實不難,jar就是用的zip壓縮,具體內容一查就了解了。
我還是建議你構造一個合理的目錄結構,比如一般的游戲:
./map/*
./data/*
./save/*
./start.jar
這樣不是挺好的嗎
D. 運行jar文件失敗classpath下的資源文件找不到
ApplicationContext act = new (
"classpath:applicationContext.xml"); 這一句話, 你打包完了之後,它在load applicationContext.xml 的時候 路徑變了。
實在找不到對的路徑, 就把那專個配置文屬件拿出來,hard code 寫進去(僅僅 做testing)
E. 工程中引入第三方JAR包後安裝APK時老是提示找不到庫文件
在android的工程根目錄下創建libs文件夾,點擊此文件夾,然後將你的第三方包引入即可。(如果直接粘貼進入不行,請用構建路徑引入)
F. [java]打包成jar之後找不到文件FileNotFoundException
Java在WEB項目中獲取文件路徑 .
jsp中獲得文件路徑servlet中獲得文件路徑java中獲得文件路徑jsp中獲得文件路徑
1、根目錄所對應的絕對路徑:request.getRequestURI();
2、文件的絕對路徑:application.getRealPath(request.getRequestURI())
3、當前web應用的絕對路徑:application.getRealPath("/")
4、取得請求文件的上層目錄:
newFile(application.getRealPath(request.getRequestURI())).getParent()
servlet中獲得文件路徑
1、根目錄所對應的絕對路徑:request.getServletPath()
2、文件的絕對路徑:
request.getSession().getServletContext().getRealPath(request.getRequestURI())
3、當前web應用的絕對路徑:servletConfig.getServletContext().getRealPath("/")
註:ServletContext對象獲得幾種方式:
javax.servlet.http.HttpSession.getServletContext()
javax.servlet.jsp.PageContext.getServletContext()
javax.servlet.ServletConfig.getServletContext()
java中獲得文件路徑
1、Thread.currentThread().getContextClassLoader().getResource("").toURI().getPath()
2、MyClass.class.getClassLoader().getResource("").toURI().getPath()
3、ClassLoader.getSystemResource("").toURI().getPath()
4、MyClass.class.getResource("").toURI().getPath()
5、MyClass.class.getResource("/").toURI().getPath()
6、newFile("/").getAbsolutePath().toURI().getPath()
7、System.getProperty("user.dir").toURI().getPath()
希望能幫到你
G. JAVA讀取了本地TXT,但是導出JAR並運行時提示系統找不到指定路徑求助
在編寫代碼時使用的是絕對路徑來訪問的這個文件,然而這個文件是在jar包中的,jar包中有自己的一套Url編址:jar:<url>!/{entry})。所以導致運行時無法訪問到文件。
解決辦法就是在構造File對象時使用url來構造,而文件的url獲取使用ClassLoader.
URL fileURL=this.getClass().getResource("0.txt");
File file = new File(fileURL);
FileInputStream fis = new FileInputStream(file);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fis));