亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java調(diào)用外部程序的方法及代碼演示

 更新時間:2023年03月19日 09:29:19   作者:gundumw100  
這篇文章主要介紹了java調(diào)用外部程序的方法及代碼演示的相關資料,需要的朋友可以參考下

java調(diào)用外部程序的方法 

在一個java應用中,可能會遇到這樣的需求,就是需要調(diào)用一些外部的應用做一些處理,比如調(diào)用excel,然后在繼續(xù)程序的運行。 

下面就開始進入java調(diào)用外部程序的一些演示,讓java應用更加靈活。 

1:最簡單的演示: 

Runtime.getRuntime().exec("notepad.exe"); 

記事本被打開了是吧。 

2:傳遞應用程序的參數(shù): 

Runtime runtime=Runtime.getRuntime();

String[] commandArgs={"notepad.exe","c:/boot.ini"};

runtime.exec(commandArgs);

現(xiàn)在不單單打開了記事本,而且還裝載了boot.ini文件是吧。 

現(xiàn)在已經(jīng)完全解決了調(diào)用外部程序的問題,不是嗎,但是大家會發(fā)現(xiàn)exec方法是有返回值,那么繼續(xù)我們的演示吧。 

1:Process的waitFor:

Runtime runtime=Runtime.getRuntime();

String[] commandArgs={"notepad.exe","c:/boot.ini"};

Process process=runtime.exec(commandArgs);

int exitcode=process.waitFor();

System.out.println("finish:"+exitcode);

執(zhí)行上面的代碼以后發(fā)現(xiàn)不同的地方了嗎,waitFor會使線程阻塞,只有外部程序退出后才會執(zhí)行System.out.println("finish:"+exitcode); 
這個功能很有用是吧,因為多數(shù)時候你都需要等待用戶處理完外部程序以后才繼續(xù)你的java應用。 

2:Process的destroy: 

Runtime runtime=Runtime.getRuntime();

String[] commandArgs={"notepad.exe","c:/boot.ini"};

final Process process=runtime.exec(commandArgs);

new Thread(new Runnable(){

@Override

public void run() {

try {

Thread.sleep(5000);

} catch (InterruptedException e) {}

process.destroy();

}}).start();

int exitcode=process.waitFor();

System.out.println("finish:"+exitcode);

這個演示稍微復雜了一些,如果你等待5秒,就會發(fā)現(xiàn)記事本自動關閉了,是的,這個就是destroy方法的作用,強制關閉調(diào)用的外部程序。 

不用我解釋了吧,這是非常有用的方法。 

以上的部分已經(jīng)足夠你調(diào)用并控制你的外部應用了。如果需要更詳細的信息,看javadoc文檔吧。 

最后的說明:ProcessBuilder這個1.5新增的類也可以完成同樣的任務,Runtime就是調(diào)用了這個類。

到此這篇關于java調(diào)用外部程序的方法及代碼演示的文章就介紹到這了,更多相關java調(diào)用外部程序的方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 三種Java打印PDF文檔的實例代碼

    三種Java打印PDF文檔的實例代碼

    這篇文章主要介紹了三種Java 打印PDF文檔的方法,文中代碼非常詳細,供大家學習和參考,感興趣的朋友快來了解下
    2020-06-06
  • Netty序列化深入理解與使用

    Netty序列化深入理解與使用

    序列化 (Serialization)是將對象的狀態(tài)信息轉(zhuǎn)換為可以存儲或傳輸?shù)男问降倪^程。在序列化期間,對象將其當前狀態(tài)寫入到臨時或持久性存儲區(qū)。以后,可以通過從存儲區(qū)中讀取或反序列化對象的狀態(tài),重新創(chuàng)建該對象
    2022-08-08
  • Java線程池中的工作線程Worker類源碼解析

    Java線程池中的工作線程Worker類源碼解析

    這篇文章主要介紹了Java線程池中的工作線程Worker類源碼解析,線程池中的工作線程是通過內(nèi)部類Worker表示的,Worker繼承自AbstractQueueSynchronizer,可以實現(xiàn)同步器的功能,需要的朋友可以參考下
    2023-12-12
  • Java中位運算(移位、位與、或、異或、非) 的簡單實例

    Java中位運算(移位、位與、或、異或、非) 的簡單實例

    Java中位運算(移位、位與、或、異或、非) 的簡單實例,需要的朋友可以參考一下
    2013-02-02
  • SpringBoot多環(huán)境配置及配置文件分類實例詳解

    SpringBoot多環(huán)境配置及配置文件分類實例詳解

    這篇文章主要介紹了SpringBoot多環(huán)境配置及配置文件分類,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • MyBatis啟動時控制臺無限輸出日志的原因及解決辦法

    MyBatis啟動時控制臺無限輸出日志的原因及解決辦法

    這篇文章主要介紹了MyBatis啟動時控制臺無限輸出日志的原因及解決辦法的相關資料,需要的朋友可以參考下
    2016-07-07
  • 使用PageHelper插件實現(xiàn)Service層分頁

    使用PageHelper插件實現(xiàn)Service層分頁

    這篇文章主要為大家詳細介紹了使用PageHelper插件實現(xiàn)Service層分頁,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 基于SpringBoot?使用?Flink?收發(fā)Kafka消息的示例詳解

    基于SpringBoot?使用?Flink?收發(fā)Kafka消息的示例詳解

    這篇文章主要介紹了基于SpringBoot?使用?Flink?收發(fā)Kafka消息,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • 深入理解Java中線程間的通信

    深入理解Java中線程間的通信

    一般來講,線程內(nèi)部有自己私有的線程上下文,互不干擾。但是當我們需要多個線程之間相互協(xié)作的時候,就需要我們掌握Java線程的通信方式。本文將介紹Java線程之間的幾種通信原理,需要的可以參考一下
    2022-11-11
  • SpringBoot使用LomBok的示例代碼

    SpringBoot使用LomBok的示例代碼

    這篇文章主要介紹了SpringBoot使用LomBok的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07

最新評論