當前位置:首頁 » 操作系統 » linux命令行java

linux命令行java

發布時間: 2024-06-14 06:03:13

A. 如何在linux終端裡面運行java

通常用命令、shell腳本,或者直接運行程序可執行的程序。像java的jar包可以用java -jar xxx.jar執行。eclipse也可以cd到eclipse解壓目錄,然後./eclipse執行eclipse這個程序。
可以看看shell腳本,和java相關的命令和工具(javac,javap,jvisualvm,jconsole等等)。
所有的軟體都有一個可執行腳本或者可執行程序。cd過去sh xxx.sh 或者./xxx.sh就可以在命令行執行。像tomcat也有startup.sh和shutdown.sh。你也可以看看,其實就是一個很復雜的shell腳本

B. linux下如何知道JAVA_HOME的目錄在哪裡什麼命令

linux下要知道JAVA_HOME的目錄可以使用 echo $JAVA_HOME命令。

linux的echo命令, 在shell編程中極為常用, 在終端下列印變數value的時候也是常常用到的,例如:

echo $JAVA_HOME

/user/local/jdk1.6.0_25

如果正確配置了JAVA_HOME的環境變數,則使用echo $JAVA_HOME就可以輸出其目錄位置。


(2)linux命令行java擴展閱讀

echo命令介紹:

1、功能說明:顯示文字。

2、語 法:echo [-ne][字元串]或 echo [--help][--version]

3、補充說明:echo會將輸入的字元串送往標准輸出。輸出的字元串間以空白字元隔開, 並在最後加上換行號。

4、參數:

-n 不要在最後自動換行

-e 若字元串中出現以下字元,則特別加以處理,而不會將它當成一般

–help 顯示幫助

–version 顯示版本信息

C. 怎麼用java代碼運行linux命令

以下方法支持Linux和windows兩個系統的命令行調用。還用到了apache的lang工具包commons-lang3-3.1.jar來判斷操作系統類型、也用到了和log4j-1.2.16.jar來列印日誌。至於rm -rf 是否能成功刪除文件,可以手動去調用命令行試試。

privateStringcallCmd(Stringcmd)throwsInterruptedException,UnHandledOSException,ExecuteException{
if(SystemUtils.IS_OS_LINUX){
try{
//使用Runtime來執行command,生成Process對象
Processprocess=Runtime.getRuntime().exec(
newString[]{"/bin/sh","-c",cmd});
intexitCode=process.waitFor();
//取得命令結果的輸出流
InputStreamis=process.getInputStream();
//用一個讀輸出流類去讀
InputStreamReaderisr=newInputStreamReader(is);
//用緩沖器讀行
BufferedReaderbr=newBufferedReader(isr);
Stringline=null;
StringBuildersb=newStringBuilder();
while((line=br.readLine())!=null){
System.out.println(line);
sb.append(line);
}
is.close();
isr.close();
br.close();
returnsb.toString();
}catch(java.lang.NullPointerExceptione){
System.err.println("NullPointerException"+e.getMessage());
logger.error(cmd);
}catch(java.io.IOExceptione){
System.err.println("IOException"+e.getMessage());
}
thrownewExecuteException(cmd+"執行出錯!");
}

if(SystemUtils.IS_OS_WINDOWS){
Processprocess;
try{
//process=newProcessBuilder(cmd).start();
String[]param_array=cmd.split("[\s]+");
ProcessBuilderpb=newProcessBuilder(param_array);
process=pb.start();
/*process=Runtime.getRuntime().exec(cmd);*/
intexitCode=process.waitFor();
InputStreamis=process.getInputStream();
InputStreamReaderisr=newInputStreamReader(is);
BufferedReaderbr=newBufferedReader(isr);
Stringline;
StringBuildersb=newStringBuilder();

while((line=br.readLine())!=null){
System.out.println(line);
sb.append(line);
}
is.close();
isr.close();
br.close();
returnsb.toString();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
thrownewExecuteException(cmd+"執行出錯!");
}

thrownewUnHandledOSException("不支持本操作系統");
}

D. 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)執行簡單的命令的方法:

代碼如下:

E. 在linux下如何用命令行的形式執行Java程序

1、java程序一般都有啟動腳本
2、例如tomcat/bin
./startup.sh
3、例如weblogic
./startWebLogic.sh
4、也可以用java直接啟動jar包,例如
/doyoo/jdk1.6/bin/java -DRmode=test -Dlog4j.configuration=file:conf/log4j.properties -classpath run.jar net.test.ji
m.server.boot.Booter

F. 如何在java程序中調用linux命令或者shell腳本

在java程序中如何調用linux的命令?如何調用shell腳本呢?

這里不得不提到java的process類了。

process這個類是一個抽象類,封裝了一個進程(你在調用linux的命令或者shell腳本就是為了執行一個在linux下執行的程序,所以應該使用process類)。

process類提供了執行從進程輸入,執行輸出到進程,等待進程完成,檢查進程的推出狀態,以及shut down掉進程。

至於詳細的process類的介紹放在以後介紹。

另外還要注意一個類:Runtime類,Runtime類是一個與JVM運行時環境有關的類,這個類是Singleton的。

這里用到的Runtime.getRuntime()方法是取得當前JVM的運行環境,也是java中唯一可以得到運行環境的方法。(另外,Runtime的大部分方法都是實例方法,也就是說每次運行調用的時候都需要調用到getRuntime方法)

下面說說Runtime的exec()方法,這里要注意的有一點,就是public Process exec(String [] cmdArray, String [] envp);這個方法中cmdArray是一個執行的命令和參數的字元串數組,數組的第一個元素是要執行的命令往後依次都是命令的參數,envp感覺應該和C中的execve中的環境變數是一樣的,envp中使用的是name=value的方式。

下面說一下,如何使用process來調用shell腳本

例如,我需要在linux下實行linux命令:sh test.sh,下面就是執行test.sh命令的方法:

這個var參數就是日期這個201102包的名字。

String shpath="/test/test.sh"; //程序路徑

Process process =null;

String command1 = 「chmod 777 」 + shpath;
process = Runtime.getRuntime().exec(command1);
process.waitFor();

String var="201102"; //參數

String command2 = 「/bin/sh 」 + shpath + 」 」 + var;
Runtime.getRuntime().exec(command2).waitFor();

注意:

1

我為什麼要使用 chmod 777命令呢?在有的機器上面,可能沒有設置許可權問題。這是你在linux下面執行shell腳本需要注意的問題。沒有的話,就需要添加許可權,就用chmod 777,否則在執行到Runtime.getRuntime().exec的時侯會出現Permission denied錯誤。

2

waitFor()這個也是必不可缺的,如果你需要執行多行命令的話,把waitFor()這個加上。

熱點內容
登陸社保賬號密碼是什麼 發布:2024-11-26 16:23:03 瀏覽:896
優盾加密軟體 發布:2024-11-26 16:15:52 瀏覽:655
熱血傳奇手游免費輔助腳本 發布:2024-11-26 15:59:03 瀏覽:220
安卓王者榮耀怎麼設置回復血量 發布:2024-11-26 15:58:58 瀏覽:533
汽車空調壓縮機軸承 發布:2024-11-26 15:58:56 瀏覽:960
c語言中53 發布:2024-11-26 15:56:36 瀏覽:281
ftp上傳瀏覽器 發布:2024-11-26 15:39:56 瀏覽:788
mvc數據訪問層 發布:2024-11-26 15:39:36 瀏覽:259
安卓的face怎麼使用 發布:2024-11-26 15:05:50 瀏覽:90
存儲魔力象限2016 發布:2024-11-26 15:04:47 瀏覽:867