java獲取根路徑有兩種方式:
1),在servlet可以用一下方法取得:
request.getRealPath(「/」) 例如:filepach = request.getRealPath(「/」) 」//upload//」;
2),不從jsp,或servlet中獲取,只從普通java類中獲取:
String path =
getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
SAXReader() saxReader = new SAXReader();
if(path.indexOf(「WEB-INF」)>0){
path = path.substring(0,path.indexOf(「/WEB-INF/classes」) 16);
// 『/WEB-INF/classes』為16位
document = saxReader.read(path filename);
}else{
document = saxReader.read(getClass().getResourceAsStream(filename));
}
weblogic tomcat 下都有效
String path =
getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
<!--EndFragment-->
Ⅱ java如何拼接linux目錄下文件路徑
java在讀取linux目錄時可以使用FileSystem類,FileSystem創建IO流時需要Path子類,新建Path只需要傳入String類型的路徑即可。
所以拼接路徑實際上就是對String的拼接。
String有多種方法可以拼接,最簡單的是直接用+號來接。
Ⅲ java怎麼取出linux伺服器的文件路徑
java可以獲取當前項目的路徑, Class.class.getClass().getResource("/").getPath()
這個是有請求的情況下,request.getSession().getServletContext().getRealPath("")
Ⅳ linux下 Java如何獲取文件的絕對路徑
需要使用路徑時,用下面的方法取得項目根目錄的絕對路徑(Tools為方法類)
public static String getRootPath() {
String classPath = Tools.class.getClassLoader().getResource("/").getPath();
String rootPath = "";
//windows下
if("\\".equals(File.separator)){
rootPath = classPath.substring(1,classPath.indexOf("/WEB-INF/classes"));
rootPath = rootPath.replace("/", "\\");
}
//linux下
if("/".equals(File.separator)){
rootPath = classPath.substring(0,classPath.indexOf("/WEB-INF/classes"));
rootPath = rootPath.replace("\\", "/");
}
return rootPath;
}
Ⅳ java linux file路徑怎麼寫
liunx 沒有window中的盤符 只有一個根目錄 不能用「\\」 會被轉義 只能用「/」寫 你用中盯猜pwd命令查詢 文件跟路徑賣型 然後拼文件全名 應該就則喚可以的。。 試試
Ⅵ java window和linux FileInputStream讀文件路徑問題
Linux系統下的文件夾路徑和window下的不一樣,windows下就需要寫成「\\photos"因為java會把第一個"\"當成轉義字元給」吃了「。但在linux下就是
「/photos」呵呵,是不是很郁悶阿。所以你的if (myFile.newFolder(path+"\\photos"))
就應該寫成if (myFile.newFolder(path+"/photos"))以此類推。
public static final String FILE_SEPARATOR = System.getProperties()。getProperty("file.separator");
文件分隔符(在 UNIX 系統中是「/」),window 是"\"
為了程序的可移植性,使用File.separator來寫路徑。
File(String pathname)
通過將給定路徑名字元串轉換為抽象路徑名來創建一個新 File 實例。
public static final String separator
與系統有關的默認名稱分隔符,為了方便,如漏它被表示為一個字元串。此字元串只包含一個字元,即 separatorChar。
public static final char separatorChar
與系統有關的默認名稱分隔符。此欄位被枝雀初始化為包含系統屬性 file.separator 值的第一個字元。在 UNIX 系統上,此欄位的值為 '/';在 Microsoft Windows 系統上,它為 '\\'。
注意:
路徑名字元串與抽象路徑名之間的轉換與系統有關。將抽象路徑名轉換為路徑名字元串時,每個名稱與下一個名稱之間用一個默認分隔符 隔開。默認名稱分隔符由系統屬性 file.separator 定義,可通過此類的公共靜態欄位 separator 和 separatorChar 使其可用。將路徑名渣搭爛字元串轉換為抽象路徑名時,可以使用默認名稱分隔符或者底層系統支持的任何其他名稱分隔符來分隔其中的名稱
System.getProperty("user.dir") 獲取工程路徑名
System.getProperty("file.separator").equals("/") 判斷linux的方法。
用File.separator這個可以直接替換路徑問題,不需要判斷
Ⅶ java linux讀取文件.文件路徑問題.這個文件路徑改怎麼改才對。
linux下文件路徑都是「/」開始的,可以通過changeWorkingDirectory方法來進行路徑的切換,舉例:
**
* 上傳文件
*
* @param fileName
* @param plainFilePath 文件路徑路徑
* @param filepath
* @return
* @throws Exception
*/
public static String fileUploadByFtp(String plainFilePath, String fileName, String filepath) throws Exception {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
FTPClient ftpClient = new FTPClient();
String bl = "false";
try {
fis = new FileInputStream(plainFilePath);
bos = new ByteArrayOutputStream(fis.available());
byte[] buffer = new byte[1024];
int count = 0;
while ((count = fis.read(buffer)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
Log.info("加密團念敬上傳文件開始"塌慎);
Log.info("連接遠程上傳伺服器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);
ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);
ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);
FTPFile[] fs;
fs = ftpClient.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(filepath)) {
bl="true";
ftpClient.changeWorkingDirectory("/"+filepath+"");
}
}
Log.info("檢查文件路徑是否存在:/"+filepath);
if("false".equals(bl)){
ViewUtil.dataSEErrorPerformedCommon( "查詢文件路徑不存在:"+"/"+filepath);
return bl;
}
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("GBK");
// 設置文件類型(二進制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.storeFile(fileName, fis);
Log.info("上傳文件成功:"+fileName+"。文件保存路徑:"+"/"+filepath+"/");
return bl;
} catch (Exception e) {
throw e;
} finally {
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
}
}
備註:只需要修改上傳的伺服器地址、用戶名、密碼即可進行服務高畢器訪問上傳。根據實際需要修改即可。
Ⅷ Linux要怎麼查看系統的JAVA安裝路徑
linux怎麼查看java安裝路徑呢,下面就讓我們來看看吧。
1、打開linux系統,在高攜linux的桌面的空白處右擊。
2、在彈出的下拉選項里,點擊打開碼念正終端。
3、在終端窗口中輸入java-version回車即可看到安裝的Java版本。
4、最遲悔後兩行即是安裝路徑。
以上就是小編的分享,希望能幫助的大家。
Ⅸ java程序怎樣讀取linux系統下的文件
java是跨平台語言,在linux上讀文件跟在windows上讀文件是一樣的 只是文件路徑不一樣,可以用File對象和FileInputSteam來讀取。但要注意文件編碼問題。
如果有中文請做適當的編碼轉換,通常情況下Linux的默認字元編碼為UTF-8編碼方式,項目可以直接採用utf8編碼方式操作.用System.getProperty("file.encoding")可檢查系統編碼格式。可改操作系統的文件系統編碼,vi /etc/profile,在文件末尾加上
export LANG="zh_CN.GBK"
export LC_ALL="zh_CN.GBK"
編碼轉換代碼:new String(files[i].getName().getBytes("GBK"),"UTF-8");
文件操作的核心代碼請參考下面代碼:
String path= "/home/";
path= "/home/multiverse/Repository/PMEPGImport";
File file=new File(path);
File[] tempList = file.listFiles();
for (int i = 0; i < tempList.length; i++) {
if (tempList[i].isFile()) {
//FileInputStream fis = new FileInputStream("fileName");
//InputStreamReader isr = new InputStreamReader(fis,"utf-8");
StringBuffer buffer = new StringBuffer();
String text;
BufferedReader input = new BufferedReader (new FileReader(tempList[i]));
while((text = input.readLine()) != null)
buffer.append(text +"/n"); }
if (tempList[i].isDirectory()) {
System.out.println("文件夾:"+tempList[i]);
}
}
Ⅹ 從windows系統上傳文件至linux伺服器,Java代碼中要怎麼處理路徑
Java中可以根據平台來判斷路徑的分隔符租兆的x0dx0a通段瞎常使用\\或/,也可以使用File.separator一般我在握型空寫路徑時經常用/x0dx0ax0dx0a5.取得伺服器相對路徑x0dx0aSystem.getProperty("user.dir")x0dx0a例如:E:\apache-tomcat-5.5.16\apache-tomcat-5.5.16\binx0dx0a可以網路一下Java路徑路徑分隔符