【微信Java开发 --1---番外1】在windows下,使用JAVA执行多条DOS命令+文件夹/路径中有空格怎么解决【目的是实现内容穿透外网】

简介: 内网穿透外网的那一篇,参正集1但是每次都要Ctrl+R 启动DOS窗口,也就是CMD,一句一句的去粘,略显繁琐。所以将这些任务写在JAVA程序中,启动一次程序就可以实现【内网穿透】的功能,多好啊! 首先把流程走一遍1.

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

 

相关文章
|
3月前
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
295 1
|
9天前
|
存储 负载均衡 Java
如何配置Windows主机MPIO多路径访问存储系统
Windows主机多路径(MPIO)是一种技术,用于在客户端计算机上配置多个路径到存储设备,以提高数据访问的可靠性和性能。本文以Windows2012 R2版本为例介绍如何在客户端主机和存储系统配置多路径访问。
50 13
如何配置Windows主机MPIO多路径访问存储系统
|
1月前
|
Java Linux Windows
windows版java版本管理器
本文介绍了如何在Windows上使用JDK版本管理器jvms来管理多个Java版本,包括下载、初始化、列出本地安装的JDK版本、在线查看可用版本、切换和安装特定版本的Java。
32 0
windows版java版本管理器
|
24天前
|
监控 关系型数据库 MySQL
PowerShell 脚本编写 :自动化Windows 开发工作流程
PowerShell 脚本编写 :自动化Windows 开发工作流程
20 0
|
1月前
|
Ubuntu Linux Python
如何利用wsl-Ubuntu里conda用来给Windows的PyCharm开发
如何在WSL(Windows Subsystem for Linux)的Ubuntu环境中使用conda虚拟环境来为Windows上的PyCharm开发设置Python解释器。
50 0
|
2月前
|
存储 安全 程序员
Windows任务管理器开发原理与实现
Windows任务管理器开发原理与实现
|
3月前
|
Java Windows
【Azure Developer】Windows中通过pslist命令查看到Java进程和线程信息,但为什么和代码中打印出来的进程号不一致呢?
【Azure Developer】Windows中通过pslist命令查看到Java进程和线程信息,但为什么和代码中打印出来的进程号不一致呢?
|
3月前
|
开发者 C# Windows
WPF与游戏开发:当桌面应用遇见游戏梦想——利用Windows Presentation Foundation打造属于你的2D游戏世界,从环境搭建到代码实践全面解析新兴开发路径
【8月更文挑战第31天】随着游戏开发技术的进步,WPF作为.NET Framework的一部分,凭借其图形渲染能力和灵活的UI设计,成为桌面游戏开发的新选择。本文通过技术综述和示例代码,介绍如何利用WPF进行游戏开发。首先确保安装最新版Visual Studio并创建WPF项目。接着,通过XAML设计游戏界面,并在C#中实现游戏逻辑,如玩家控制和障碍物碰撞检测。示例展示了创建基本2D游戏的过程,包括角色移动和碰撞处理。通过本文,WPF开发者可更好地理解并应用游戏开发技术,创造吸引人的桌面游戏。
171 0
|
3月前
|
开发者 iOS开发 C#
Uno Platform 入门超详细指南:从零开始教你打造兼容 Web、Windows、iOS 和 Android 的跨平台应用,轻松掌握 XAML 与 C# 开发技巧,快速上手示例代码助你迈出第一步
【8月更文挑战第31天】Uno Platform 是一个基于 Microsoft .NET 的开源框架,支持使用 C# 和 XAML 构建跨平台应用,适用于 Web(WebAssembly)、Windows、Linux、macOS、iOS 和 Android。它允许开发者共享几乎全部的业务逻辑和 UI 代码,同时保持原生性能。选择 Uno Platform 可以统一开发体验,减少代码重复,降低开发成本。安装时需先配置好 Visual Studio 或 Visual Studio for Mac,并通过 NuGet 或官网下载工具包。
229 0
|
4月前
|
Linux Apache C++
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
该文介绍了如何在Windows环境下为FFmpeg集成SRT协议支持库libsrt。首先,需要安装Perl和Nasm,然后编译OpenSSL。接着,下载libsrt源码并使用CMake配置,生成VS工程并编译生成srt.dll和srt.lib。最后,将编译出的库文件和头文件按照特定目录结构放置,并更新环境变量,重新配置启用libsrt的FFmpeg并进行编译安装。该过程有助于优化直播推流的性能,减少卡顿问题。
109 2
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
下一篇
无影云桌面