欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java啟動進(jìn)程代碼 java啟動參數(shù)

JAVA基礎(chǔ):java如何判斷某個(gè)進(jìn)程是否在啟用

前段時(shí)刻測試的時(shí)辰發(fā)現(xiàn)客戶端,雙擊停筆坦亂多次回生成多次XXX.exe.所以在啟動時(shí)判定一下時(shí)辰有歷程已經(jīng)啟動侍信物老液了,下面把代碼寫出來。 Java代碼 public boolean getProcess(){ boolean flag=false; try{ Process p = Runtime.getRuntime().exec( "cmd /c tasklist "); ByteArrayOutputStream baos = new ByteArrayOutputStream(); InputStream os = p.getInputStream(); byte b[] = new byte[256]; while(os.read(b) 0) baos.write(b); String s = baos.toString(); // System.out.println(s); if(s.indexOf( "Besttone.exe ")=0){ System.out.println( "yes "); flag=true; } else{ System.out.println( "no "); flag=false; } }catch(java.io.IOException ioe){ } return flag; }

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、潢川ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的潢川網(wǎng)站制作公司

能用java代碼打開一個(gè)應(yīng)用程序嗎?

可以,java功能可是相嫌陪當(dāng)強(qiáng)大純模的。

這個(gè)是調(diào)用應(yīng)用程序的代碼:

Runtime

ec;

ec=Runtime.getRuntime();

ec.exec("這里是應(yīng)用程序的路徑或者命做者緩令");

比如:ec.exec("c:\\123.exe");

java運(yùn)行的五個(gè)步驟?

Java程序從源文件創(chuàng)建到程序運(yùn)行要經(jīng)過兩大步驟:1、源文件由編譯器編譯成字節(jié)碼(ByteCode)

2、字節(jié)碼由java虛擬機(jī)解釋運(yùn)行。因?yàn)閖ava程序既要編譯同時(shí)也要經(jīng)過JVM的解釋運(yùn)行,所以說Java被稱為半解釋語言( "semi-interpreted" language)。

下面通過以下這個(gè)java程序,來說明java程序從編譯到最后運(yùn)行的整個(gè)流程。代碼如下:

//MainApp.java

public class MainApp {

public static void main(String[] args) {

Animal animal = new Animal("Puppy");

animal.printName();

}

}

//Animal.java

public class Animal {

public String name;

public Animal(String name) {

this.name = name;

}

public void printName() {

System.out.println("Animal ["+name+"]");

}

}

第一步(編譯): 創(chuàng)建完源文件之后,程序會先被編譯為.class文件。Java編譯一個(gè)類時(shí),如果這個(gè)類所依賴的類還沒有被編譯,編譯器就會先編譯這個(gè)被依賴的類,然后引用,否則直接引用,這個(gè)有點(diǎn)象make。如果java編譯器在指定目錄下找不到該類所其依賴的類的.class文件或者.java源文件的話,編譯器話報(bào)“cant find symbol”的錯(cuò)誤。

編譯后的字節(jié)碼文件格式主要分為兩部分:常量池和方法字節(jié)碼。常量池記錄的是代碼出現(xiàn)過的所有token(類名,成員變量名等等)以及符號引用(方法引用,成員變量引用等等);方法字節(jié)碼放的是類中各個(gè)方法的字節(jié)碼。下面是MainApp.class通過反匯編的結(jié)果,我們可以清楚看到.class文件的結(jié)構(gòu):

第二步(運(yùn)行):java類運(yùn)行的過程大概可分為兩個(gè)過程:1、類的加載 2、類的執(zhí)行。需要說明的是:JVM主要在程序第一次主動使用類的時(shí)候,才會去加載該類。也就是說,JVM并不是在一開始就把一個(gè)程序就所有的類都加載到內(nèi)存中,而是到不得不用的時(shí)候才稿凳和把它加載進(jìn)來,而且只加載一次。

下面是程序運(yùn)行的詳細(xì)步驟:

在編譯好java程序得到MainApp.class文鍵盯件后,在命令行上敲java AppMain。系統(tǒng)就會啟動一個(gè)jvm進(jìn)程,jvm進(jìn)程從classpath路徑中找到一個(gè)名為AppMain.class的二進(jìn)制文件,將MainApp的類信息加載到運(yùn)行時(shí)數(shù)據(jù)區(qū)的方法區(qū)內(nèi),這個(gè)過程叫做MainApp類的加載。

然后JVM找到AppMain的主函數(shù)入口,開始執(zhí)行main函數(shù)。

main函數(shù)的第一條命令是Animal animal = new Animal("Puppy");就是讓JVM創(chuàng)建一個(gè)Animal對象,但是這時(shí)候方法區(qū)中沒有Animal類的信息,所以JVM馬上加載Animal類,把Animal類的類型信息放到方法區(qū)中。

加載完Animal類之后,Java虛擬機(jī)做的第一件事情就是在堆區(qū)中為一個(gè)新的Animal實(shí)例分配內(nèi)存, 然后調(diào)用構(gòu)造函數(shù)初始化Animal實(shí)例,這個(gè)Animal實(shí)例持有著指向方法區(qū)的Animal類的類粗培型信息(其中包含有方法表,java動態(tài)綁定的底層實(shí)現(xiàn))的引用。

當(dāng)使用animal.printName()的時(shí)候,JVM根據(jù)animal引用找到Animal對象,然后根據(jù)Animal對象持有的引用定位到方法區(qū)中Animal類的類型信息的方法表,獲得printName()函數(shù)的字節(jié)碼的地址。

開始運(yùn)行printName()函數(shù)。

特別說明:java類中所有public和protected的實(shí)例方法都采用動態(tài)綁定機(jī)制,所有私有方法、靜態(tài)方法、構(gòu)造器及初始化方法都是采用靜態(tài)綁定機(jī)制。而使用動態(tài)綁定機(jī)制的時(shí)候會用到方法表,靜態(tài)綁定時(shí)并不會用到。

新聞名稱:java啟動進(jìn)程代碼 java啟動參數(shù)
文章位置:http://chinadenli.net/article17/dspjggj.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站虛擬主機(jī)網(wǎng)站改版小程序開發(fā)網(wǎng)站內(nèi)鏈品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司