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

Java喚醒本地應(yīng)用的兩種方法詳解

 更新時間:2022年08月09日 10:31:00   作者:一灰灰  
這篇文章主要為大家介紹了Java喚醒本地應(yīng)用的兩種方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

引言

作為一個后端同學(xué),經(jīng)常被安全的小伙伴盯上,找一找安全漏洞;除了常說的注入之外,還有比較嚇人的執(zhí)行遠程命令,喚醒本地應(yīng)用程序等;然后有意思的問題就來了,寫了這么多年的代碼,好像還真沒有嘗試過用java來喚醒本地應(yīng)用程序的

比如說一個最簡單的,打開本地的計算器,應(yīng)該怎么搞?

接下來本文將介紹一下如何使用java打開本地應(yīng)用,以及打開mac系統(tǒng)中特殊一點的處理方式(直白來說就是不同操作系統(tǒng),使用姿勢不一樣)

1. Runtime使用方式

主要是基于Runtime.getRuntime().exec()來執(zhí)行shell命令,來打開應(yīng)用

比如打開計算器

// win系統(tǒng)
Runtime.getRuntime().exec("exec");
// mac系統(tǒng)
Runtime.getRuntime().exec("open -n /Applications/Calculator.app")

從上面的傳參也可以看出兩者的區(qū)別,為什么mac會整一個 open -n, 這個其實可以理解為在終端執(zhí)行命令,打開計算器

注意事項

對于mac系統(tǒng)而言,除了上面這種打開方式之外,還有下面這種姿勢

Runtime.getRuntime().exec("/Applications/Calculator.app/Contents/MacOS/Calculator")

在exec中指定計算器的路徑,有個很容易采的坑,直接寫成下面這種

Runtime.getRuntime().exec("/Applications/Calculator.app")

上面這個直接執(zhí)行之后會提示權(quán)限錯誤,其主要原因是mac系統(tǒng)的應(yīng)用和win中的exe作為啟動方式不太一樣,對于mac而言,可以理解xxx.app為一個目錄,真正執(zhí)行文件是內(nèi)部的xxx/Contents/MacOS/xxx

2. ProcessBuilder使用方式

除了Runtime喚起之外,使用ProcessBuilder也屬于非常常見的case

// win
new ProcessBuilder("exec").start()
// mac 注意,使用下面這個,則傳參不能是 open -n xxx
new ProcessBuilder("/Applications/Calculator.app/Contents/MacOS/Calculator").start()

使用上面這種姿勢,特別需要注意的是內(nèi)部傳參不能是open -n

3. 小結(jié)

從上面介紹的方式來看,其實打開應(yīng)用程序的思路主要就是利用java來執(zhí)行腳本命令;內(nèi)容比較簡單,隱患卻是比較大的;在自己的項目中,最好不要出現(xiàn)這種調(diào)用方式

以上就是Java喚醒本地應(yīng)用的兩種方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Java喚醒本地應(yīng)用的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • IDEA2022搭建Spring?Cloud多模塊項目的詳細(xì)過程

    IDEA2022搭建Spring?Cloud多模塊項目的詳細(xì)過程

    這篇文章主要介紹了IDEA2022搭建Spring?Cloud多模塊項目,網(wǎng)上有很多教程父模塊都是通過maven的方式創(chuàng)建的,然后子模塊是通過Spring?Initalizr方式創(chuàng)建,這種方式父模塊無法管理子模塊的依賴仲裁,需要每個子模塊自行管理,就失去了父模塊的用處了
    2022-10-10
  • SpringBoot中EasyExcel實現(xiàn)Excel文件的導(dǎo)入導(dǎo)出

    SpringBoot中EasyExcel實現(xiàn)Excel文件的導(dǎo)入導(dǎo)出

    這篇文章主要介紹了SpringBoot中EasyExcel實現(xiàn)Excel文件的導(dǎo)入導(dǎo)出,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • SpringSecurity實現(xiàn)自定義登錄接口的詳細(xì)過程

    SpringSecurity實現(xiàn)自定義登錄接口的詳細(xì)過程

    本文詳細(xì)介紹了如何使用SpringSecurity實現(xiàn)自定義登錄接口,文章還涉及了對用戶實體類的增強以滿足詳細(xì)信息的需求,適合需要深入了解和實現(xiàn)SpringSecurity自定義登錄功能的開發(fā)者,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • Spring框架基于AOP實現(xiàn)簡單日志管理步驟解析

    Spring框架基于AOP實現(xiàn)簡單日志管理步驟解析

    這篇文章主要介紹了Spring框架基于AOP實現(xiàn)簡單日志管理步驟解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • MyBatis 動態(tài) SQL 優(yōu)化之標(biāo)簽的實戰(zhàn)與技巧(常見用法)

    MyBatis 動態(tài) SQL 優(yōu)化之標(biāo)簽的實戰(zhàn)與技巧(常見用法)

    本文通過詳細(xì)的示例和實際應(yīng)用場景,介紹了如何有效利用這些標(biāo)簽來優(yōu)化 MyBatis 配置,提升開發(fā)效率,確保 SQL 的高效執(zhí)行和安全性,感興趣的朋友跟隨小編一起看看吧
    2025-04-04
  • java 8如何自定義收集器(collector)詳解

    java 8如何自定義收集器(collector)詳解

    這篇文章主要給大家介紹了關(guān)于java 8如何自定義收集器(collector)的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • SpringBoot+RabbitMQ?實現(xiàn)死信隊列的示例

    SpringBoot+RabbitMQ?實現(xiàn)死信隊列的示例

    本文主要介紹了SpringBoot+RabbitMQ?實現(xiàn)死信隊列的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 教你用JAVA寫文本編輯器(一)

    教你用JAVA寫文本編輯器(一)

    對于學(xué)習(xí)java編程的小伙伴們,常常需要編寫一個類似文本編輯器的東西,下面這篇文章主要給大家介紹了關(guān)于如何用JAVA寫文本編輯器的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • 從面試中的問題分析ThreadLocal

    從面試中的問題分析ThreadLocal

    這篇文章主要介紹了從面試中的問題分析ThreadLocal,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,下面我們來一起學(xué)習(xí)一下吧
    2019-06-06
  • Spring Cloud Config配置文件使用對稱加密的方法

    Spring Cloud Config配置文件使用對稱加密的方法

    Spring Cloud Config提供了兩種加密解密方式,一種是對稱加密,一種是非對稱加密。這篇文章將先展示如何使用對稱加密。感興趣的朋友跟隨腳步之家小編一起學(xué)習(xí)吧
    2018-05-05

最新評論

萝北县| 吴川市| 张家界市| 八宿县| 连江县| 哈巴河县| 根河市| 荔波县| 信阳市| 嘉义县| 福泉市| 东乡族自治县| 志丹县| 蓬莱市| 安新县| 淮阳县| 台江县| 宁阳县| 玉林市| 手机| 石狮市| 荔浦县| 和田县| 四平市| 遵义市| 昭通市| 乡城县| 白河县| 行唐县| 邢台县| 公主岭市| 郸城县| 桑植县| 凭祥市| 马鞍山市| 新龙县| 汶川县| 乐平市| 通山县| 新昌县| 原平市|