最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA如何調(diào)用Shell腳本

 更新時(shí)間:2017年08月15日 16:11:11   作者:sunshine_kaka  
本篇文章主要介紹了JAVA如何調(diào)用Shell腳本,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

在實(shí)際項(xiàng)目中,Java有時(shí)候需要調(diào)用C寫出來的東西,除了JNI以外,我認(rèn)為一種比較好的方法是JAVA調(diào)用Shell。先把C寫出來的make成可執(zhí)行文件,然后再寫一個(gè)shell腳本執(zhí)行該可執(zhí)行文件,最后是JAVA調(diào)用該shell腳本。

JAVA調(diào)用很簡單,例子如下:

首先是shell腳本

#!/bin/sh 
echo Begin word cluster 
/home/felven/word2vec/word2vec -train /home/felven/word2vec/resultbig.txt -output /home/felven/word2vec/classes.csv -cbow 0 -size 200 -window 5 -negative 0 -hs 1 -sample 1e-3 -threads 12 -classes 2000 
echo The word classes were saved to file classes.csv 

然后是JAVA調(diào)用代碼

import java.io.BufferedReader; 
import java.io.InputStreamReader; 
 
public class RunShell { 
  public static void main(String[] args){ 
    try { 
      String shpath="/home/felven/word2vec/demo-classes.sh"; 
      Process ps = Runtime.getRuntime().exec(shpath); 
      ps.waitFor(); 
 
      BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream())); 
      StringBuffer sb = new StringBuffer(); 
      String line; 
      while ((line = brreadLine()) != null) { 
        sb.append(line).append("\n"); 
      } 
      String result = sbtoString(); 
      System.out.println(result); 
      }  
    catch (Exception e) { 
      e.printStackTrace(); 
      } 
  } 
} 

其實(shí)就是一個(gè)Process類進(jìn)行調(diào)用,然后把shell的執(zhí)行結(jié)果輸出到控制臺下。

需要注意的是,在調(diào)用時(shí)需要執(zhí)行waitFor()函數(shù),因?yàn)閟hell進(jìn)程是JAVA進(jìn)程的子進(jìn)程,JAVA作為父進(jìn)程需要等待子進(jìn)程執(zhí)行完畢。

另外在eclipse控制臺輸出時(shí)并不是邊執(zhí)行邊輸出,而是shell全部執(zhí)行完畢后輸出,所以如果執(zhí)行較為復(fù)雜的shell腳本看到?jīng)]有輸出時(shí)可能會(huì)誤以為沒有執(zhí)行,這個(gè)時(shí)候看看終端里面的進(jìn)程,TOP命令一下就能看到其實(shí)shell腳本已經(jīng)開始執(zhí)行了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring實(shí)例化bean過程解析及完整代碼示例

    Spring實(shí)例化bean過程解析及完整代碼示例

    這篇文章主要介紹了Spring實(shí)例化bean過程解析及完整代碼示例,簡單分析實(shí)例化bean過程并且分享了相關(guān)實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • SpringBoot異步調(diào)用相同類的解決方案

    SpringBoot異步調(diào)用相同類的解決方案

    在SpringBoot中,同一個(gè)類中調(diào)用帶有@Async注解的方法時(shí),異步調(diào)用會(huì)失效,因?yàn)橹苯油ㄟ^this調(diào)用方法時(shí),并沒有通過Spring的代理對象,下面給大家分享SpringBoot異步調(diào)用相同類的解決方案,感興趣的朋友一起看看吧
    2025-02-02
  • Java類加載策略之雙親委派機(jī)制全面分析講解

    Java類加載策略之雙親委派機(jī)制全面分析講解

    這篇文章主要介紹了Java雙親委派機(jī)制,雙親委派模型是Java加載類的機(jī)制,采用雙親委派模型的好處是Java類隨著它的類加載器一起具備了一種帶有優(yōu)先級的層級關(guān)系,通過這種層級關(guān)系可以避免類的重復(fù)加載,感興趣的朋友可以參考下
    2023-12-12
  • Java線程本地變量導(dǎo)致的緩存問題解決方法

    Java線程本地變量導(dǎo)致的緩存問題解決方法

    使用緩存可以緩解大流量壓力,顯著提高程序的性能,我們在使用緩存系統(tǒng)時(shí),尤其是大并發(fā)情況下,經(jīng)常會(huì)遇到一些疑難雜癥,這篇文章主要給大家介紹了關(guān)于Java線程本地變量導(dǎo)致的緩存問題的解決方法,需要的朋友可以參考下,
    2024-08-08
  • Java語言實(shí)現(xiàn)簡單FTP軟件 輔助功能模塊FTP站點(diǎn)管理實(shí)現(xiàn)(12)

    Java語言實(shí)現(xiàn)簡單FTP軟件 輔助功能模塊FTP站點(diǎn)管理實(shí)現(xiàn)(12)

    這篇文章主要為大家詳細(xì)介紹了Java語言實(shí)現(xiàn)簡單FTP軟,輔助功能模塊FTP站點(diǎn)管理的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Java多線程揭秘之synchronized工作原理

    Java多線程揭秘之synchronized工作原理

    synchronized算是多線程中非常常用的加鎖方式了,但很多人都不太理解其底層的工作原理。本篇文章博主用盡可能通俗易懂的方式來帶大家去看看synchronized究竟是怎么加鎖的
    2021-10-10
  • Nacos?動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置和服務(wù)管理平臺初體驗(yàn)

    Nacos?動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置和服務(wù)管理平臺初體驗(yàn)

    這篇文章主要介紹了Nacos?動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置和服務(wù)管理平臺初體驗(yàn)的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • 學(xué)習(xí)Java之異常到底該如何捕獲和處理

    學(xué)習(xí)Java之異常到底該如何捕獲和處理

    我們知道,Java的異常處理是通過5個(gè)關(guān)鍵字來實(shí)現(xiàn)的,即try、catch、throw、throws和finally,try?catch語句用于捕獲并處理異常,但具體該怎么捕獲異常,怎么拋出異常,什么時(shí)候拋,什么時(shí)候捕,感興趣的小伙伴跟著小編一起來看看吧
    2023-08-08
  • SpringBoot中的HATEOAS詳情

    SpringBoot中的HATEOAS詳情

    這篇文章主要介紹了SpringBoot中的HATEOAS詳情,SpringBoot提供了HATEOAS的便捷使用方式,文章圍繞主題展開詳細(xì)介紹內(nèi)容,需要的小伙伴可以參考一下
    2022-05-05
  • 劍指Offer之Java算法習(xí)題精講排列與N叉樹

    劍指Offer之Java算法習(xí)題精講排列與N叉樹

    跟著思路走,之后從簡單題入手,反復(fù)去看,做過之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化
    2022-03-03

最新評論

泽州县| 原平市| 洪湖市| 东乌珠穆沁旗| 密云县| 于田县| 革吉县| 德化县| 资中县| 永年县| 饶平县| 崇文区| 商都县| 闽清县| 镇远县| 沭阳县| 滨海县| 桑植县| 广饶县| 墨脱县| 丰城市| 山东| 界首市| 中山市| 清镇市| 毕节市| 陕西省| 萝北县| 高邮市| 新田县| 钟祥市| 腾冲县| 上栗县| 清苑县| 龙岩市| 辽宁省| 介休市| 宁海县| 临高县| 亳州市| 靖边县|