java調用linux-九游会j9娱乐平台
java native access (jna) 是一個用於調用 c/c 動態庫的 java 開源框架,無需編寫任何 native/jni 代碼。開發人員只需在 java 介面中描述函數庫的函數和結構,jna 將自動實現 java 介面方法與函數的映射。
在使用 jna 調用 c 動態庫時,首先需要下載並導入 jna-5.9.0.jar 庫到 java 項目中。接著,定義一個繼承 library 的介面,並在介面內部定義一個公共靜態常量,通過 native.load() 函數獲取動態庫文件和介面類類型,jna 通過這些信息動態創建介面實例,實現調用外部 dll/so 函數。
在介面中聲明要調用的 c/c 動態庫函數。在 c 端動態庫代碼中編寫相應函數。
若要調用參數為結構體的 c 函數,java 需在 testso 介面中增加結構體定義。通過 java 中的 structure 類模擬 c 語言中的結構體,並注意模擬結構體變數的順序,必須與 c 語言中結構體的順序一致,以避免數據被錯誤地傳遞到函數的參數欄位中。structure 類有兩種內部介面:structure.byreference 和 structure.byvalue,分別代表結構體指針和結構體本身。
總之,使用 jna 調用 c 動態庫可以簡化開發流程,提高代碼復用性。只需關注 java 代碼的編寫,無需深入底層的 jni 技術細節,使得開發效率大大提升。
㈡ 怎麼在java中執行linux 命令 netstat -nat|grep -i "80"|wc -l
或許這就是你想要的 package question.save; import java.io.inputstreamreader; import java.io.linenumberreader;/*** java在linux環境下執行linux命令,然後返回命令返回值。 * @author lee*/public class execlinuxcmd { public static object exec(string cmd) {try {string[] cmda = { /bin/sh, -c, cmd }; process process = runtime.getruntime().exec(cmda); linenumberreader br = new linenumberreader(new inputstreamreader( process.getinputstream())); stringbuffer sb = new stringbuffer(); string line; while ((line = br.readline()) != null) { system.out.println(line); sb.append(line).append(\n);}return sb.tostring(); } catch (exception e) { e.printstacktrace();}return null;} public static void main(string[] args) { // todo auto-generated method stub string pwdstring = exec(pwd).tostring(); string netsstring = exec(netstat -nat|grep -i \80\|wc -l).tostring(); system.out.println(==========獲得值=============); system.out.println(pwdstring); system.out.println(netsstring);}}輸出結果:/home/lee/program/workspace/java/test20==========獲得值=============
㈢ 伺服器上的文件java獲取linux伺服器文件簡單又高效的操作方法java獲取linux
伺服器上的文件java獲取linux伺服器文件是java開發人員在開發應用程序時的一種重要任務。java是一種高級的功能而又可擴展性強的編程語言,可以提供靈活的操作方法和簡單快捷的開發流程,且能夠良好地結合linux伺服器服務。本文將介紹java獲取linux伺服器文件的操作方法。
java開發人員在獲取linux伺服器文件時可以採用java nio類庫的支持,java nio可以為我們提供順序和非同步的i/o數據的操作支持,且將linux伺服器文件獲取的問題變得簡單驚人。具體實現步驟如下:
1. 構建linux伺服器文件路徑:確定需要操作的文件路徑,構建本地存儲路徑,讀取linux伺服器文件到本地存儲路徑。
2. 通過java nio類庫支持,讀取linux伺服器上指定文件
㈣ java程序里調用linux命令
1.java調用shell
java語言以其跨平台性和簡易性而著稱,在java裡面的lang包里(java.lang.runtime)提供了一個允許java程序與該程序所運
行的環境交互的介面,這就是runtime類,在runtime類里提供了獲取當前運行環境的介面。
其中的exec函數返回一個執行shell命令的子進程。exec函數的具體實現形式有以下幾種:
public process exec(string command) throws ioexception
public process exec(string command,string[] envp) throws
ioexception
public process exec(string command,string[] envp,file dir) throws
ioexception
public process exec(string[] cmdarray) throws ioexception
public process exec(string[] cmdarray, string[] envp) throws
ioexception
public process exec(string[] cmdarray, string[] envp,file dir)
throws ioexception
我們在這里主要用到的是第一個和第四個函數,具體方法很簡單,就是在exec函數中傳遞一個代表命令的字元串。exec函數返回的是一個process類
型的類的實例。process類主要用來控制進程,獲取進程信息等作用。(具體信息及其用法請參看java doc)。
1)執行簡單的命令的方法:
代碼如下:
㈤ linux:用java調用linux指令,這里的-c是什麼意思呢
-c string
if the -c option is present, then commands are read from string. if there are arguments after the string, they are assigned to the positional parameters, starting with $0.
翻譯一下就是: 如果-c 選項存在,命令就從字元串中讀取。如果字元串後有參數,他們將會被分配到參數的位置上,從$0開始。