內網穿透外網的那一篇,參正集1
但是每次都要Ctrl+R 啟動DOS視窗,也就是CMD,一句一句的去粘,略顯繁瑣。
所以將這些任務寫在JAVA程式中,啟動一次程式就可以實現【內網穿透】的功能,多好啊!
首先把流程走一遍
1.D盤存放內網穿透工具 ,那就在D盤新建一個資料夾,用於存放bat檔案的,起名字叫run cmd
2.在run cmd中新建一個文字檔案
在新建的文字檔案中貼上如下的程式碼:
echo
d:
cd ngrok_windows
natapp -config ngrok.cfg -subdomain zjlm 80
natapp -authtoken=0931c612e83742ec
pause
已經走過內網穿透過程的 ,應該對 這段比較熟悉。
echo DOS命令,表示cmd啟動的以下的dos命令都是顯示的狀態
d: DOS命令,表示進入d盤
cd ngrok_windows DOS命令,進入d:盤下的ngrok_windows資料夾
下面的兩行在【正篇1】中有解釋
pause DOS命令,點選bat檔案就可以直接啟動cmd.exe,從而啟動DOS視窗,但是會閃一下就沒了,你可以試一下,加上pause之後可以起到暫停的作用
3.將這個a.txt文字檔案更改為a.bat檔案
4.新建java一個類,放入以下程式碼:
import java.io.IOException; /** * Java呼叫windows的DOS命令 */ public class RunWindowsCommand{ public static void main(String[] args) throws InterruptedException { try { String cmd = "cmd /c start "+"D:/run cmd/a.bat".replaceAll(" ", "\" \""); Runtime.getRuntime().exec(cmd) ; } catch (IOException e) { e.printStackTrace(); } } }
其中,剛剛的資料夾名中帶有空格即: run cmd資料夾
這在java中無法識別,必須將其進行
.replaceAll(" ", "\" \"");處理,才可以。
5.效果圖如下:
再來看看原理如何
1.首先cmd.exe程式執行DOS命令就是呼叫一個一個的bat檔案
2.bat檔案中存放的就是DOS命令,可以是一條,也可以是多條
3.java程式要做的就是啟動cmd.exe,找到.bat檔案,執行它