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]);
}
}
❷ 如何用java獲取linux下某文件夾的大小
javacode如下:import java.io.*; class dirlen { static long dirlength;//保存目錄大小的變數 static void sdl(String dirname) { File dir=new File(dirname); System.out.println(dirname); String f[]=dir.list(); File f1; for(int i=0;i<f.length;i++) { f1 = new File (dirname+"/"+f[i]); if (!f1.isDirectory()) dirlength+=f1.length(); else sdl(dirname+"/"+f[i]);//如果是目錄,遞歸調用 } } public static void main(String args[]) { if(args.length!=1)//判斷是否只帶一個參數,參數是目錄名 { System.out.println("Parameter error!"); System.exit(0); } dirlength=0; String dirname=args[0]; File dir=new File(dirname); if(dir.isDirectory())//判斷是否是目錄,如果不是退出程序 { sdl(dirname);//計算目錄大小 System.out.println("Length is "+dirlength+" bytes."); } else System.out.println(dir+" isn't a directory!"); } }
❸ 在java中怎麼去獲取linux系統開機時的用戶名和密碼
你想破解Linux用戶的密碼?
這是不可能的。
因為所有的密碼都被用md5加密過,即使你想看自己的密碼也是看不到的。
因為md5加密演算法無法進行反向運算。而在登錄時,只有你輸入的密碼是明文,系統會把你的密碼轉換為md5碼而與系統已經存儲的md5碼進行對照,如果一致就證明你輸入的密碼是正確的,從而讓你登錄,不然,反之。
所以想都不用去想用Java來實現,就是用C語言修改源代碼也是做不到的。原因上文說了:md5加密的緣故。
事實上,有個更簡單的辦法可以讓你獲取用戶的密碼md5值:在系統里有個配置文件存儲著密碼的md5值,具體可以Google一下。
但獲得密碼的原始明文?還是那句話:想都不要去想,除非你就是這個用戶。
❹ 用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]);
}
}
❺ 用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]);
}
}
❻ java獲取linux下正在運行的應用程序的數量
Java 可以通過 Runtime 調用Linux命令,形式如下:
Runtime.getRuntime().exec(command)
但是這樣執行時沒有任何輸出,因為調用 Runtime.exec
方法將產生一個本地的進程,並返回一個Process子類的實例(注意:Runtime.getRuntime().exec(command)返回的是
一個Process類的實例)該實例可用於控制進程或取得進程的相關信息。
由於調用 Runtime.exec
方法所創建的子進程沒有自己的終端或控制台,因此該子進程的標准IO(如stdin,stdou,stderr)都通過
Process.getOutputStream(),Process.getInputStream(),
Process.getErrorStream() 方法重定向給它的父進程了。
用戶需要用這些stream來向子進程輸入數據或獲取子進程的輸出,下面的代碼可以取到 linux 命令的執行結果:
try {
String[] cmd = new String[]{」/bin/sh」, 「-c」, 」 ls 「};
Process ps = Runtime.getRuntime().exec(cmd);
BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));
StringBuffer sb = new StringBuffer();
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append(」\n」);
}
String result = sb.toString();
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
借鑒於:http://www.linuxidc.com/Linux/2010-07/27376.htm
❼ java如何獲得linux下web路徑
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操作系統下的ip地址和網
以下代碼需要 JDK 6 及以後版本,如果是 JDK 6 以下版本的話,沒有直接獲得 MAC 的 API。
import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import java.util.Enumeration; public class NetworkInfo { private final static char[] HEX = "0123456789ABCDEF".toCharArray(); public static void main(String[] args) throws SocketException { for(Enumeration<NetworkInterface> i = NetworkInterface.getNetworkInterfaces(); i.hasMoreElements(); ) { NetworkInterface ni = i.nextElement(); System.out.println("NETWORK CARD NAME: " + ni.getDisplayName()); System.out.println("MAC: " + toMacString(ni.getHardwareAddress())); for(Enumeration<InetAddress> j = ni.getInetAddresses(); j.hasMoreElements(); ) { System.out.println(" " + j.nextElement()); } } } private static String toMacString(byte[] bys) { if(bys == null) { return null; } char[] chs = new char[bys.length * 3 - 1]; for(int i = 0, k = 0; i < bys.length; i++) { if(i > 0) { chs[k++] = '-'; } chs[k++] = HEX[(bys[i] >> 4) & 0xf]; chs[k++] = HEX[bys[i] & 0xf]; } return new String(chs); }}
❾ java如何獲取Linux操作系統下的硬體信息
引入包:
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Map;
import java.util.Properties;
import org.hyperic.sigar.CpuInfo;
import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.FileSystem;
import org.hyperic.sigar.FileSystemUsage;
import org.hyperic.sigar.Mem;
import org.hyperic.sigar.NetFlags;
import org.hyperic.sigar.NetInterfaceConfig;
import org.hyperic.sigar.NetInterfaceStat;
import org.hyperic.sigar.OperatingSystem;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.Swap;
import org.hyperic.sigar.Who;
代碼太長 了,不給貼出來。相關的代碼太多了,github一抓一大把。