内网穿透外网的那一篇,参正集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文件,运行它