# 删除占用端口的程序

 netstat -ano | findstr 8080
 
 tasklist | findstr <PID>
 
 taskkill /f /t /im 进程号

# 双路由配置

route delete 0.0.0.0

route add -p 0.0.0.0 mask 0.0.0.0 192.168.1.1

route delete 10.0.0.0

route add -p 10.0.0.0 mask 255.0.0.0 10.160.64.129
  • 管理员执行该命令
  • 0.0.0.0表示外网出口,192.168.1.1表示外网网关
  • 10.0.0.0表示内网出口,10.16.64.129表示内网网关

# win10的无线UI图标找不到

  • 要么升级驱动
  • 要么重置网络并重启,如图 网络重置

# 使用idea反编译命令:

java -cp "C:\Program Files\JetBrains\IntelliJ IDEA 2019.2.4\plugins\java-decompiler\lib\java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true .\hsa-ips-admin-generic-1.6.13.jar src

# 设置windows cmd编码:

chcp 65001

# windows杀进程:

netstat -ano |findstr "18090"
tasklist |findstr "进程id号"
taskkill /f /t /im "进程id或者进程名称"
  • 举例: nginx杀死后会自动重启,此时可以用过命令: taskkill /f /t /im nginx.exe 彻底干掉ng服务

# 替换jar的lib依赖:

jar -xvf xxx.jar
#替换lib依赖
jar -cfM0 xxx.jar ./

# 替换war的资源文件:

jar -xvf xxx.war
jar -cvfM0 xxx.war ./

# jar启动参数:

  • --传参,是springBoot自带的传参方式;
  • -D,设置系统属性
  • -X,设置jvm参数

# windows应用程序常用目录及变量介绍

# 常用变量及默认值

环境变量名称 作用描述 默认值示例
%USERPROFILE% 指向当前登录用户的个人文件夹。等同于Java中的user.home C:\Users\<用户名>
%APPDATA% 指向当前用户的Roaming应用数据文件夹 C:\Users\<用户名>\AppData\Roaming
%LOCALAPPDATA% 指向当前用户的Local应用数据文件夹 C:\Users\<用户名>\AppData\Local
%TEMP%%TMP% 指定临时文件夹的位置 用户级别: C:\Users\<用户名>\AppData\Local\Temp
系统级别: C:\Windows\Temp
%PROGRAMFILES% 指向64位程序的安装目录 C:\Program Files
%PROGRAMFILES(X86)% 指向32位程序的安装目录(仅在64位Windows上存在) C:\Program Files (x86)
%WINDIR%%SYSTEMROOT% 指向Windows系统的安装目录 C:\Windows
%PATH% 包含一系列分号分隔的路径,用于指定可执行文件的搜索路径 多个目录,如 %SystemRoot%\system32;
%COMPUTERNAME% 表示计算机的名称 安装Windows时设置的计算机名
%USERNAME% 表示当前登录用户的用户名 当前登录用户的名称
%ALLUSERSPROFILE% 指向所有用户共享的应用数据文件夹 C:\ProgramData
%HOMEDRIVE% 用户主目录所在的驱动器 通常是 C:
%HOMEPATH% 用户主目录的路径部分 \Users\<用户名>

# 应用程序常用目录

# AppData\Roaming

  • roaming-漫游

  • 作用:Roaming文件夹用于存储那些可以在不同计算机之间同步的数据。当用户的账户在域环境中漫游时,Roaming中的数据会跟随用户一起移动。也就是说,如果用户登录到网络中的另一台计算机,Roaming文件夹中的设置和数据将会被复制到那台计算机上。

  • 常用来干什么:通常存放应用程序的配置文件、首选项、插件等,这些是用户特定但不需要大量存储空间或高安全性要求的数据。例如,浏览器书签、即时通讯软件的联系人列表等。

# AppData\Local

  • 作用:Local文件夹用于存储仅限于当前计算机的数据,不会与其他计算机同步。这意味着即使用户在其他计算机上登录相同的Windows账户,Local文件夹中的数据也不会被复制。
  • 常用来干什么:通常用于存放较大的文件、临时文件、缓存、本地设置以及不需要在不同设备间同步的数据。例如,Web浏览器的缓存、游戏的保存进度、应用程序的日志文件等。

# AppData\LocalLow

  • 作用:LocalLow文件夹与Local类似,但它专门为低完整性级别的进程设计。这是为了增强安全性和隔离性,防止恶意软件访问敏感信息。LocalLow中的数据同样不会漫游,并且只对当前计算机有效。
  • 常用来干什么:主要用于存储那些在Internet区域运行的应用程序(如浏览器中的插件)所创建的数据。这些应用可能具有较低的信任级别,因此它们的数据被限制在这个更安全的环境中。例如,某些浏览器扩展或下载内容的临时存储。

# idea举例说明

  • 默认的配置路径: AppData/Roaming/JetBrains/ideaIC2023.1
  • 默认的缓存路径: AppData/Local/JetBrains/ideaIC2023.1

# npm举例说明

  • 默认的全局依赖路径:AppData/Roaming/npm
  • 默认的缓存路径:AppData/Local/npm

# windows两类安装软件方式

# 简易解释

这两个安装包的区别,简单说就是 「正规安装」vs「绿色便携」 的区别:

# Windows Installer(正规安装包)

  • 像你平时下载的 .exe 或 .msi 安装文件,比如安装微信、Office 时用的那种。
  • 特点:有安装界面,能选安装路径、创建桌面图标、注册到系统,卸载时也能通过控制面板删干净。
  • 适合场景:普通用户装软件,需要长期使用、和系统深度集成的软件。

# Windows Embeddable Package(嵌入式便携包)

  • 更像一个「免安装绿色版」,比如 Python 官方提供的 .zip 压缩包。
  • 特点:解压就能直接用,不写注册表、不留安装痕迹,删文件夹就能卸载。
  • 适合场景:开发者想内置软件到自己的产品里(比如把 Python 打包进自己的程序),或者需要快速部署、测试的环境。

# 如何将正规版改为绿色版

# 手动提取(对于简单软件)

  • 如果软件简单(例如纯文件复制,不依赖注册表),可直接解压 MSI 文件
msiexec /a "软件.msi" /qb TARGETDIR="D:\提取目录"
  • 或者直接使用压缩软件解压: 如7-Zip:直接右键 MSI 文件,用 7-Zip 解压

# 虚拟化安装

  • 用工具将 MSI 安装的软件及其依赖环境封装成独立包。

  • 原理:劫持系统调用,让程序“认为”自己运行在原始环境中(注册表、文件路径虚拟化)

  • 推荐工具:

    • Cameyo(免费):类似 ThinApp,可生成便携包。
    • InstallRite(免费):记录安装前后的系统差异,生成绿色包。
  • 步骤:

    • 在虚拟机或干净系统中安装工具。
    • 启动工具,开始监控系统状态。
    • 运行 MSI 安装程序,完成安装。
    • 停止监控,工具会自动对比差异并生成绿色包。

# 二进制文件的本质区别

  • MSI 和 ZIP 安装包的核心差异,不在于二进制文件本身,而在于安装过程中对系统环境的依赖和修改

# MSI 安装后的二进制文件:

  • 文件本身与 ZIP 包中的可能完全相同(如果官方未做特殊处理)。
  • 但运行依赖外部条件:注册表配置、系统服务、环境变量、依赖库路径等。
  • 举例:
    • Office 的 WINWORD.EXE 运行时需要注册表中的激活信息和模板路径。
    • Visual Studio 的组件需要注册的 COM 对象和系统服务。

# ZIP 绿色包的二进制文件:

  • 通常通过以下方式适配“免安装”:
  • 静态编译:将依赖库打包进主程序(减少外部依赖)。
  • 相对路径:所有配置、资源文件通过相对路径访问。
  • 自包含环境:携带私有依赖库(如 Python 的 embed 版自带标准库)。
  • 运行不依赖外部条件:解压后所有依赖在文件夹内闭环。