Discussion:
問個路徑問題XD
(时间太久无法回复)
:p
2006-10-21 23:26:17 UTC
Permalink
我想要取得目前執行的java程式在哪個路徑下執行
ex:
若是我執行以下程式
C:\myJavaSrc>java myClass
我希望能得到 "C:\myJavaSrc\" 這個路徑資料
請問要怎麼做比較好?


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.84
推 PsMonkey:請看 class: java.io.File  10/22 15:25
:p
2006-10-22 00:24:55 UTC
Permalink
問題已解決
(使用 new File(""); )

感謝版主

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.84
Pao
2006-10-22 04:37:19 UTC
Permalink
※ 引述《Dancer31 (:p)》之銘言:
: 我想要取得目前執行的java程式在哪個路徑下執行
: ex:
: 若是我執行以下程式
: C:\myJavaSrc>java myClass
: 我希望能得到 "C:\myJavaSrc\" 這個路徑資料
: 請問要怎麼做比較好?

從那個路徑執行,我常用的是這個:

String path = System.getProperty("user.dir");


程式的位置可以用這個:

String path = System.getProperty("java.class.path");


想看全部有啥麼的話:

System.getPropertys().list(System.out);


希望有幫助... ^^


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.74.224.224
愚者
2006-10-22 20:00:30 UTC
Permalink
※ 引述《aeifkz (好累想睡覺)》之銘言:
: 不好意思..想請問一下版主大人
: 為何用 File 這個方法比較不好呢??
: 跟用 System 比起來不好在哪裡??

跨平台

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.26.34.213
痞子軍團團長
2006-10-23 03:30:45 UTC
Permalink
※ 引述《qrtt1 (愚者)》之銘言:
: ※ 引述《aeifkz (好累想睡覺)》之銘言:
: : 不好意思..想請問一下版主大人
: : 為何用 File 這個方法比較不好呢??
: : 跟用 System 比起來不好在哪裡??
: 跨平台

囧... File 物件基本上也可以跨平台吧
(應該說,能安裝 J2SE 的就一定能用這個 class 阿... ???)

還是說有什麼特殊的場合只能用 System 的方式??
這還請 q 七力大師開示...

====
我覺得用 File 不好的地方...
主要程式碼看上去不夠直覺

--
 侃侃長論鮮窒礙  網站:http://www.psmonkey.idv.tw
 眾目睽睽無心顫  個人版:telnet://legend.twbbs.org
 煢居少聊常人事 
 殺頭容易告白難  歡迎參觀 Java 版(@ptt.cc)精華區 \囧/

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.136.153.56
愚者
2006-10-23 03:46:11 UTC
Permalink
※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: ※ 引述《qrtt1 (愚者)》之銘言:
: : 跨平台
: 囧... File 物件基本上也可以跨平台吧
: (應該說,能安裝 J2SE 的就一定能用這個 class 阿... ???)

像取得使用者目錄,就不一樣。
C:\Documents and Settings\qrtt1
/home/qrtt1/

而且就算你要用File自己組合路徑
你還是得用安全一點的方式取得\或是/來作為路徑分隔

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.26.34.248
痞子軍團團長
2006-10-23 04:09:33 UTC
Permalink
※ 引述《qrtt1 (愚者)》之銘言:
: ※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: : 囧... File 物件基本上也可以跨平台吧
: : (應該說,能安裝 J2SE 的就一定能用這個 class 阿... ???)
: 像取得使用者目錄,就不一樣。
: C:\Documents and Settings\qrtt1
: /home/qrtt1/
: 而且就算你要用File自己組合路徑
: 你還是得用安全一點的方式取得\或是/來作為路徑分隔

用 File 類別,小心 separator 的問題是很理所當然的
(路人:明明你從來就沒注意過 [指])

不過,前半段我就看不懂了
本來在每台機器上都會取得不同的結果阿
q 七力大神要說得意思是.... @__@???

--
 侃侃長論鮮窒礙  網站:http://www.psmonkey.idv.tw
 眾目睽睽無心顫  個人版:telnet://legend.twbbs.org
 煢居少聊常人事 
 殺頭容易告白難  歡迎參觀 Java 版(@ptt.cc)精華區 \囧/

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.136.153.56
愚者
2006-10-23 04:11:54 UTC
Permalink
※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: 不過,前半段我就看不懂了
: 本來在每台機器上都會取得不同的結果阿

那種結果就不是File能簡單做到的啊

所以才要配合一下System

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.26.34.248
Pao
2006-10-23 06:24:29 UTC
Permalink
以樓主的問題來說,樓主是想要取得執行該程式的執行路徑。

樓主使用了 new File("") 來解決問題。

看了一下API,上面寫著相對路徑起點預設為 "user.dir" 的系統屬性。

new File("") 是指定起點路徑 + "" (空白)

也就是說與 System.getProperty("user.dir") 是同樣路徑的。

所以基本上是沒有問題(以樓主情形來說的話)。

只是若是要取得「程式檔」位置的情形,

就只能以 System.getProperty("java.class.path") 來取得了。

(執行路徑是可變的嘛)

有誤請指教... ^^

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.113.65.151
wctang
2006-10-23 09:02:58 UTC
Permalink
※ 引述《pao0111 (Pao)》之銘言:
: 以樓主的問題來說,樓主是想要取得執行該程式的執行路徑。
: 樓主使用了 new File("") 來解決問題。
: 看了一下API,上面寫著相對路徑起點預設為 "user.dir" 的系統屬性。
: new File("") 是指定起點路徑 + "" (空白)
: 也就是說與 System.getProperty("user.dir") 是同樣路徑的。
: 所以基本上是沒有問題(以樓主情形來說的話)。
: 只是若是要取得「程式檔」位置的情形,
: 就只能以 System.getProperty("java.class.path") 來取得了。
: (執行路徑是可變的嘛)
: 有誤請指教... ^^

應該算是題外話...

一般來說,要取得路徑常見是要讀資料的 (如果不是就算了...)
常遇到要讀資料的情況是讀設定檔 (如果也不是那也就算了...)
如果是要讀設定檔的話,建議使用 getResourceAsStream 之類由 classpath 來
讀取 resource 的方式來讀檔案,尤其是在寫 library 讓別人使用的情況。


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.21.25
p***@kkcity.com.tw
2006-10-24 04:16:13 UTC
Permalink
Post by wctang
※ 引述《pao0111 (Pao)》之銘言:
: 以樓主的問題來說,樓主是想要取得執行該程式的執行路徑。
: 樓主使用了 new File("") 來解決問題。
: 看了一下API,上面寫著相對路徑起點預設為 "user.dir" 的系統屬性。
: new File("") 是指定起點路徑 + "" (空白)
: 也就是說與 System.getProperty("user.dir") 是同樣路徑的。
: 所以基本上是沒有問題(以樓主情形來說的話)。
: 只是若是要取得「程式檔」位置的情形,
: 就只能以 System.getProperty("java.class.path") 來取得了。
: (執行路徑是可變的嘛)
: 有誤請指教... ^^
應該算是題外話...
一般來說,要取得路徑常見是要讀資料的 (如果不是就算了...)
常遇到要讀資料的情況是讀設定檔 (如果也不是那也就算了...)
如果是要讀設定檔的話,建議使用 getResourceAsStream 之類由 classpath 來
讀取 resource 的方式來讀檔案,尤其是在寫 library 讓別人使用的情況。
原來要用 System ,
以前曾經用過 new File(".") 這樣。
--
┌─────◆KKCITY◆─────┐ ◢ ╱  想要成立班系社團站台嗎? 
│ bbs.kkcity.com.tw │ █▉ ─ KKcity即日起開放BBS站申請囉!
└──《From:211.75.42.221 》──┘ ◥ ╲ 免程式技術、硬體成本的選擇!!
--

继续阅读narkive:
Loading...