- 1 1. 引言 — 为什么需要在 Ubuntu 上运行 .exe 文件以及本文的目的
- 2 2. 什么是 .exe 文件? — Windows 可执行文件格式基础知识
- 3 3. 为什么 .exe 文件无法直接在 Ubuntu 上执行
- 4 4. 在 Ubuntu 上运行 .exe 文件的三种方式
- 5 5. 使用 Wine 在 Ubuntu 上运行 .exe 文件的分步指南(兼容 Ubuntu)
- 6 6. 使用虚拟机、模拟器和容器
- 7 7. 使用 WSL(Windows Subsystem for Linux)
- 8 8. 实际案例:在 Ubuntu 上运行 .exe 文件的结果
- 9 9. 最终结论 — 选择合适的方法
1. 引言 — 为什么需要在 Ubuntu 上运行 .exe 文件以及本文的目的
在从 Windows 迁移到 Ubuntu 的过程中,常常会遇到仍然依赖于关键业务软件、小工具或基于 .exe 文件(Windows 可执行文件)的游戏的情况。然而,由于 Ubuntu(Linux)使用的执行格式和系统架构与 Windows 不同,不能像在 Windows 中那样双击 .exe 文件直接运行。
本文的目的在于梳理实用的解决方案,以回答现实中的问题 “如何在 Ubuntu 上处理 .exe 文件?”,并帮助读者根据自己的环境和目标选择最合适的方法。
本文的关键要点
.exe文件是 特定于 Windows 的可执行文件(PE 格式),与 Ubuntu 标准的可执行格式(ELF)不兼容。基于上述前提,处理 Ubuntu 上
.exe文件的主要思路大致可以分为以下三类: wp:list /wp:list- 使用 Wine :在 Ubuntu 上重新实现并翻译 Windows API 来运行
.exe文件 - 虚拟化或仿真 :使用 VirtualBox 等工具将 Windows 作为客操作系统运行,然后在其中执行
.exe文件 - 使用 WSL(基于 Windows 的环境) :一种特殊情况,即在 Windows 上运行的 Ubuntu 中处理
.exe文件 - 每种方法都有其 优势与劣势。实际使用中,Wine 适合轻量级工具,虚拟机则提供最高兼容性,而 基于 WSL 的工作流在有 Windows 主机时效果显著 。
- 使用 Wine :在 Ubuntu 上重新实现并翻译 Windows API 来运行
本文的目标
- 让读者了解 推荐的解决方案尝试顺序 以及 可选的替代方案,并根据需求(目标软件、性能与稳定性优先级、部署工作量、授权与成本)作出判断。
- 使读者能够复现 实际的执行步骤(尤其是使用 Wine),并在应用无法正常工作时处理 常见的故障排查点。
- 帮助读者识别 Linux 原生的替代方案,作为在不必坚持使用
.exe文件时的“不同解决方案”。
目标受众
- 想在 Ubuntu 上运行特定 Windows 应用的初学者至中级用户
- 希望根据需求从“仅尝试一下”到“业务使用的稳定运行”中挑选最合适方法的用户
- 已经尝试过 Wine 或虚拟化但仍面临 错误或不稳定 的用户
推荐阅读流程
- 基础认知(.exe 文件与 Ubuntu 的差异)
- 可用方法概览(Wine、虚拟化、WSL 的对比)
- 实操步骤(安装与运行 Wine,关键配置要点)
- 故障排查(常见问题与检查清单)
- 替代方案(Linux 原生及跨平台应用)
- 最终决策指引(选择哪种方法以及下一步该尝试什么)
开始前的重要提示
- 并非所有
.exe文件的表现都相同。其行为会因 应用自身实现、所需 DLL、32 位或 64 位架构以及图形或驱动依赖 而异。 - 虽然本文提供了普遍适用且可复现的步骤,但并不保证每个应用都能完全兼容。对于无法运行的情况,也提供了替代方案。
- 在企业或组织环境中使用这些方法时,请务必检查 软件许可证和安全策略 。
2. 什么是 .exe 文件? — Windows 可执行文件格式基础知识
在深入探讨如何在 Ubuntu (Linux) 上处理 .exe 文件之前,重要的是要了解 .exe 文件(以及 Windows 可执行文件格式)实际上是什么,以及它们为什么与 Linux 可执行文件不同。
2.1 .exe 文件是什么以及 PE 格式?
PE (Portable Executable) 格式概述
- 在 Windows 上,可执行文件( .exe )、库( .dll )和设备驱动程序都使用 PE (Portable Executable) 格式 。
- PE 格式是较旧的 COFF (Common Object File Format) 的扩展,并包含 Windows 加载器所需的所有信息,例如导入和导出、节布局以及头数据。
- 一个典型的 .exe 文件由 MS-DOS 头、DOS 存根、PE 头和多个节组成。DOS 存根用于向后兼容,并显示诸如“This program cannot be run in DOS mode.”之类的消息。
主要结构组件(简化)
| Component | Role and Description |
|---|---|
| MS-DOS Header | The initial area identified by the “MZ” magic number |
| DOS Stub | Displays a message when executed in legacy DOS environments |
| PE Header | Contains core control information such as the PE signature, file header, and optional header |
| Sections | Multiple sections including code (.text), data (.data), import/export tables, and resources |
| Import/Export Information | Defines functions imported from or exported to other DLLs |
| Relocation, TLS, Resource Data | Handles runtime address changes, thread-local storage, icons, menus, and other resources |
如上所示,PE 格式不仅包含程序本身,还包含执行 Windows 上所需的广泛元数据和链接信息。
2.2 Linux (Ubuntu) 可执行文件格式:ELF 的特性
在基于 Linux 的操作系统(包括 Ubuntu)上,可执行文件主要使用 ELF (Executable and Linkable Format) 。
ELF 格式在 UNIX-like 系统上广泛使用,并以可移植性和灵活性为设计理念。其主要特性包括以下内容:
- 支持多种用例,例如可执行二进制文件、共享库和对象文件
- 由头、段和节、符号表以及重定位信息组成
- 使用动态链接器(例如
ld.so)在运行时解析库 - Linux 内核和加载器机制从根本上围绕 ELF 格式设计
ELF 与 Linux 执行环境自然兼容,并且可以使用标准工具如 readelf、objdump 和 ldd 来检查和分析 ELF 二进制文件。
2.3 PE 和 ELF 之间的差异 — 为什么 .exe 文件无法在 Ubuntu 上原生运行
Windows PE 格式和 Linux ELF 格式在根本设计层面上不同。这些差异是 .exe 文件无法直接在 Ubuntu 上执行的核心原因。
关键差异和兼容性障碍
| Difference | Description | Impact on Execution |
|---|---|---|
| Loader Design and Section Interpretation | PE is designed for the Windows loader (e.g., ntoskrnl), while ELF is designed for the Linux loader | The Linux loader cannot interpret PE structures |
| System Calls and API Usage | Windows relies on Win32 and kernel-mode APIs, while Linux uses a different ABI and system call interface | API calls fail at runtime |
| Dynamic Linking and Libraries | PE depends on DLLs and import tables with relocation handling | Required DLLs do not exist in Linux environments |
| File Format Compatibility | PE and ELF have fundamentally different file structures | Binary-level conversion is not feasible |
| Architecture Differences | Differences in 32-bit vs 64-bit modes and execution contexts | Incompatibility depending on architecture and mode |
开发人员社区中的讨论一致强调,PE 和 ELF 是“为相同目的设计但不可互读的格式”。尝试将 ELF 二进制文件转换为 PE 可执行文件表明,非平凡的原生应用程序无法实现二进制兼容,主要由于系统调用和运行时环境的差异。
2.4 为什么系统报告“无法执行”错误
- 在 Ubuntu 上双击
.exe文件通常会导致诸如“not an ELF executable”或“invalid executable format”之类的错误 - 对
.exe文件运行file命令通常会输出类似于“PE32 executable”的内容,明确表明它不是 Linux 可执行文件 .exe文件专为 Windows 环境设计,不符合 Linux 加载器要求
3. 为什么 .exe 文件无法直接在 Ubuntu 上执行
在前一节中,我们确认 .exe 文件是 基于 PE 格式的 Windows 专用可执行文件。
本节解释这些结构差异如何转化为实际限制,从而阻止 .exe 文件直接在 Ubuntu 上运行。
3.1 Ubuntu 和 Windows 上的“执行”从根本上不同
在基于 Linux 的系统(如 Ubuntu)上,程序执行机制(执行加载器)与 Windows 的机制从根本上不同。
尽管“双击文件运行它”的操作看起来相似,但 底层过程完全不同。
Windows 上的执行工作原理
- 操作系统内核会分析 PE 头并加载所需的 DLL(动态链接库)。
- 应用程序通过分层的 Windows API(如
ntdll.dll、kernel32.dll、user32.dll)进行操作。 - GUI 应用程序通过 Windows 窗口管理器渲染,并处理用户交互,如鼠标点击和键盘输入。
Ubuntu(Linux)上的执行方式
- 可执行文件必须是 ELF 格式,Linux 内核能够解析并加载它。
- 共享库(
.so)采用动态链接,应用程序依赖符合 POSIX 标准的系统调用,如open、read、fork、execve。 - 由于文件格式和 API 不同,PE 格式的
.exe文件无法被识别,会被视为非可执行文件而被拒绝。
因此,当 Ubuntu 遇到 .exe 文件时,它会将其视为未知结构并拒绝执行。
3.2 示例错误信息
如果你尝试双击 .exe 文件或在终端中使用 ./program.exe 运行它,可能会看到如下错误信息:
$ ./example.exe
bash: ./example.exe: cannot execute binary file: Exec format error
此错误并不表示文件已损坏,而是意味着 Ubuntu 不知道如何执行此文件格式。
3.3 Windows API 的缺失
.exe 文件无法在 Ubuntu 上运行的最根本原因是 Linux 环境中不存在 Windows API。
.exe 文件内部会调用 Windows 特有的函数,例如:
CreateFileA();
MessageBoxW();
RegOpenKeyExW();
这些函数属于 Windows 专用的库,如 kernel32.dll 和 user32.dll。由于 Ubuntu 并未提供这些 API,即使文件格式可以被读取,也没有相应的实现来执行这些调用。
3.4 文件系统和环境变量的差异
Windows 与 Ubuntu 在文件系统结构和环境变量约定上有显著差异。
| Item | Windows | Ubuntu (Linux) |
|---|---|---|
| Path Separator | \ (backslash) | / (forward slash) |
| Drive Structure | C:\, D:\, etc. | Single-root hierarchy (/, /home, /usr) |
| Line Endings | CRLF (\r\n) | LF (\n) |
| Path Example | C:\Program Files\App\app.exe | /home/user/app |
| Execution Permission | Determined by file extension | Determined by executable permission (chmod) |
Windows 应用程序常常假设存在诸如 C:\ 的驱动器字母。由于 Ubuntu 不使用这种模型,Windows 程序内部引用的文件路径经常会失效。
3.5 DLL 依赖与兼容性问题
许多 .exe 文件看似是独立的,但实际上它们依赖 多个 DLL(动态链接库)。例如 d3d9.dll(图形)、dsound.dll(音频)和 ws2_32.dll(网络)。
Ubuntu 并未提供这些 DLL 或其背后的 Windows API 实现。因此,当应用尝试加载或调用这些库时,执行会失败。
3.6 CPU 指令集相似,但操作系统架构仍然重要
现代的 Ubuntu 与 Windows 系统常常运行在相同的 x86_64(AMD64)架构上,CPU 指令集基本兼容。
然而,操作系统层面的执行环境——如系统调用和内存管理——的差异,使得跨平台运行应用变得不可行。
这在尝试在 64 位 Ubuntu 系统上运行 32 位 Windows 可执行文件而未使用类似 Wine 的兼容层时尤为突出。
3.7 小结:问题不在技术限制,而在设计差异
.exe 文件无法在 Ubuntu 上原生运行,并非因为缺乏能力,而是因为两者的操作系统设计理念根本不同。
- 不同的文件格式(PE vs ELF)
- 不同的 API(Windows API vs POSIX/Linux 系统调用)
- 不同的动态库系统(DLL vs .so)
- 不同的路径、权限和环境模型
- 不同的加载机制
因此,要在 Ubuntu 上运行 .exe 文件,需要引入 中间兼容层 来弥合这些差异。
这类工作由 Wine 和 虚拟化软件 等工具完成,下一节将对此进行说明。
4. 在 Ubuntu 上运行 .exe 文件的三种方式
到目前为止,我们已经解释了为什么 Ubuntu 无法原生执行 Windows 的 .exe 文件。
然而,运行它们并非不可能。
通过使用合适的兼容层或虚拟环境,许多 Windows 应用程序可以在 Ubuntu 上执行。
本节介绍在 Ubuntu 上运行 .exe 文件的三种最常见方法。
通过比较它们的特性、优势和劣势,你可以确定哪种方案最适合你的使用场景。
4.1 使用 Wine(最轻量的兼容层)
什么是 Wine?
Wine(Wine Is Not an Emulator),顾名思义,并不是模拟器,而是一个 在 Linux 上重新实现 Windows API 的兼容层。
它不需要运行完整的 Windows 操作系统,而是将 Windows API 调用转换为 Linux 系统调用。
由于 Wine 不依赖虚拟化或 CPU 仿真,通常 比在虚拟机中运行 Windows 更轻量、更快速。
Wine 已经活跃开发超过 20 年,可以通过 Ubuntu 官方软件源或 WineHQ 的 PPA 轻松安装。
对于喜欢图形界面的用户,PlayOnLinux 或 Bottles 等工具提供了友好的前端。
安装步骤(Ubuntu 22.04 / 24.04)
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install wine64 wine32
如果想要获取最新的稳定版,可以添加官方的 WineHQ 软件源:
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources
sudo apt update
sudo apt install --install-recommends winehq-stable
基本使用
wine setup.exe
或者,你也可以在文件管理器中右键点击 .exe 文件,选择 “使用 Wine 打开”。
首次运行时,Wine 会创建 ~/.wine 目录,其中包含类似 Windows C 盘的虚拟文件结构。
优势
- 轻量且快速(相较于虚拟机资源占用显著更低)
- 许多 Windows 应用,尤其是老旧软件,运行良好
- Ubuntu 与 Windows 应用之间的文件共享方便
劣势
- 并非所有应用都受支持(兼容性因软件而异)
- 游戏和 3D 应用可能不稳定
- 32 位与 64 位混合环境可能导致问题
实用技巧
你可以在官方的 WineHQ AppDB 中查询应用兼容性。
应用会根据报告的兼容程度被评为 Platinum、Gold、Silver、Bronze 或 Garbage。
4.2 使用虚拟机或模拟器(最高稳定性)
如果 Wine 运行不佳,或出于业务需求需要保证稳定性,虚拟机是最可靠的选择。
常见方案包括 VirtualBox、VMware Workstation 和 QEMU/KVM。
工作原理
虚拟机在 Ubuntu 上创建一个虚拟硬件环境,并在其中运行 完整的 Windows 操作系统作为客系统。
换句话说,你是在 Ubuntu 中运行一台完整的 Windows 电脑。
高层次设置步骤
- 安装 VirtualBox 或类似工具
sudo apt install virtualbox - 从 Microsoft 下载 Windows ISO 镜像
- 创建虚拟机并使用 ISO 安装 Windows
- 在 Windows 客系统中正常运行
.exe文件
优势
- 兼容性极高(几乎所有在 Windows 上能运行的程序都能工作)
- 稳定且行为可预期
- 便于管理网络、文件共享和快照
劣势
- 资源占用高(CPU、内存和存储)
- 需要有效的 Windows 许可证
- 启动时间相较于 Wine 更慢
推荐使用场景
- 必须可靠运行的商务或会计软件
- 需要专用驱动的 3D 应用或软件
- Windows 开发或测试环境
4.3 使用 WSL(Windows Subsystem for Linux):一种逆向方法
最终的方法采用了不同的视角。
如果你在 Windows 中运行 Ubuntu,可以使用 WSL(Windows Subsystem for Linux) 来处理 .exe 文件。
WSL 的工作原理
在 WSL 下运行的 Ubuntu 实际上是一个 托管在 Windows 上的 Linux 环境。
因此,你可以直接在 Ubuntu 终端调用 Windows 可执行文件。
notepad.exe
此命令直接从 Ubuntu 启动 Windows 记事本。
由于 WSL 共享 Windows 内核,Windows 可执行文件可以本地调用。
优势
- 无需额外设置即可运行 Windows
.exe文件 - Linux 与 Windows 环境之间实现无缝文件共享
- 与 VS Code、Docker 等开发工具实现出色的集成
劣势
- 仅在 Ubuntu 运行于 Windows(WSL 环境)时有效
- 某些 GUI 应用和硬件交互受限
- 不适用于独立的 Ubuntu 系统
4.4 应该选择哪种方法?(对比表)
| Method | Compatibility | Performance | Setup Difficulty | Best Use Case |
|---|---|---|---|---|
| Wine | Medium | Fast | Moderate | Lightweight applications, personal use |
| Virtual Machines | High | Moderate | Moderate to High | Business software, maximum stability |
| WSL | High (Windows only) | Fast | Easy | Development and hybrid workflows |
4.5 小结
在 Ubuntu 上运行 .exe 文件的最佳方式取决于你对兼容性和性能的需求。
- 易用性和速度 → Wine
- 稳定性和完整兼容性 → 虚拟机
- 以 Windows 为中心的工作流 → WSL
了解这些选项后,你可以根据自己的环境和目标选择最合适的方法。
5. 使用 Wine 在 Ubuntu 上运行 .exe 文件的分步指南(兼容 Ubuntu)
本节提供了使用 Wine 的详细实用指南,这是在 Ubuntu 上运行 .exe 文件最便捷的方式。
为了让首次使用者清晰易懂,步骤从安装和初始配置到执行和故障排除全部说明。
5.1 Wine 是什么——Windows 应用的“翻译层”
Wine 的全称是 “Wine Is Not an Emulator”。它是一个 在 Linux 上重新实现 Windows API 的兼容层。
Wine 并不是模拟 Windows 本身,而是将 Windows API 调用翻译为 Linux 可兼容的系统调用。
关键优势在于 Wine 直接运行在 Linux 内核上,而不是模拟整个操作系统。
这相比虚拟机大幅降低资源占用并提升执行速度。
5.2 安装 Wine(Ubuntu 22.04 / 24.04)
首先,安装 Wine 为执行环境做准备。
虽然 Wine 已在默认的 Ubuntu 软件源中提供,但使用官方的 WineHQ 软件源可确保获取最新的稳定版本。
① 启用 32 位架构支持
sudo dpkg --add-architecture i386
许多 Windows 应用仍为 32 位,因此即使在 64 位系统上也建议启用 32 位支持。
② 添加官方 WineHQ 软件源
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources
sudo apt update
③ 安装 Wine
sudo apt install --install-recommends winehq-stable
④ 验证安装
wine --version
如果显示类似 wine-9.x 的版本号,则说明安装已完成。
5.3 初始配置(首次启动)
首次使用 Wine 时,运行配置工具:
winecfg
这会创建 ~/.wine 目录并搭建一个虚拟的 Windows 风格磁盘结构。
目录布局通常如下所示:
~/.wine/
├─ drive_c/
│ ├─ Program Files/
│ ├─ windows/
│ └─ users/
└─ system.reg / user.reg
Wine 在此目录中重新创建类似 Windows 的文件系统并在其中安装应用程序。
5.4 运行 .exe 文件
方法 1:通过命令行
wine ~/Downloads/setup.exe
方法 2:通过文件管理器
右键单击 .exe 文件并选择 “Open with Wine”。
两种方法的效果相同。
如果该文件是安装程序,将会出现熟悉的 Windows 风格的安装向导。
安装完成后(通常位于 C:\Program Files),可以按如下方式启动应用程序:
wine "C:\\Program Files\\AppName\\app.exe"
5.5 修复日文文本渲染问题
英文应用程序通常可以正常工作,但日文应用程序可能会出现乱码。
为了解决此问题,请在 Ubuntu 上安装日文字体。
sudo apt install fonts-noto-cjk
或者,你可以从 Windows 系统中复制 msgothic.ttc 或 meiryo.ttc 等字体文件到:
~/.wine/drive_c/windows/Fonts
这通常可以解决字符渲染问题。
5.6 使用 Winetricks(实用辅助工具)
winetricks 是一个帮助脚本,可轻松安装额外的组件,如 DLL、字体和运行时库。
安装 Winetricks
sudo apt install winetricks
示例:安装 Visual C++ 运行时
winetricks vcrun2015
这可以解决许多常见的 “DLL not found” 错误。
5.7 在 WineHQ AppDB 中检查兼容性
Wine 提供了官方兼容性数据库 WineHQ AppDB。
每个应用程序都会根据实际测试结果获得评级:
| Rating | Description |
|---|---|
| Platinum | Runs perfectly out of the box |
| Gold | Runs well with minor configuration |
| Silver | Runs with noticeable but manageable issues |
| Bronze | Starts but is unstable |
| Garbage | Does not run |
搜索你的应用程序名称通常可以找到推荐的设置和解决方案。
5.8 常见错误及解决方案
| Symptom | Cause | Solution |
|---|---|---|
| “Cannot execute binary file” | Wine not installed or 32-bit support missing | Enable i386 architecture and reinstall Wine |
| Garbled Japanese text | Missing fonts | Install fonts-noto-cjk |
| Missing DLL errors | Runtime libraries not installed | Use winetricks vcrun2015, dotnet40, etc. |
| Application crashes | GPU or DirectX dependency | Install d3dx9 or use a virtual machine |
5.9 运行良好的应用程序示例
| Category | Application | Notes |
|---|---|---|
| Text Editors | Notepad++, TeraPad | High compatibility |
| Image Editing | IrfanView, Paint.NET | Generally stable |
| Business Tools | Hidemaru Editor, Sakura Editor, Ichitaro | May require font tuning |
| Games | Diablo II, StarCraft, Minecraft (Java Edition) | Lightweight titles run well |
5.10 小结
Wine 是在 Ubuntu 上运行 .exe 文件的最实用方式之一。
它在 轻量性能、兼容性和易用性 之间取得了良好的平衡。
由于兼容性因应用程序而异,建议 提前查看 AppDB 并在需要时使用 Winetricks。
6. 使用虚拟机、模拟器和容器
虽然 Wine 能运行许多 Windows 应用程序,但并不能保证在所有情况下都能完美兼容。
尤其是 商务软件、会计应用、带有 3D 渲染的游戏以及依赖设备驱动的程序,在 Wine 下往往表现不稳定或无法启动。
在这些情况下,使用 虚拟机、模拟器 或 容器 是一种有效的解决方案。
本节将说明每种方法的工作原理以及如何在实际中使用它们来运行 Ubuntu 上的 .exe 文件。
6.1 什么是虚拟机?——“在 Ubuntu 中运行完整的 Windows 系统”
虚拟机(VM)在 Ubuntu 上重新创建 虚拟 PC 硬件,并将 Windows 作为完整的客操作系统运行。
常见的解决方案包括:
- VirtualBox(免费且开源)
- VMware Workstation Player(非商业用途免费)
- QEMU / KVM(高性能、原生 Linux 虚拟化)
概念概览
[Ubuntu Host OS]
├── Virtual Machine Software
│ ├── Virtual CPU / Memory / Disk
│ └── [Windows Guest OS]
│ └── .exe Execution
该方法在 Ubuntu 中安装并运行 真实的 Windows 操作系统。
由于不需要进行 API 翻译,兼容性几乎可以达到 完整兼容。
6.2 使用 VirtualBox 运行 Windows
① 安装 VirtualBox
sudo apt update
sudo apt install virtualbox
② 准备 Windows ISO 镜像
从 Microsoft 官方网站下载 Windows 10 或 Windows 11 ISO 镜像。
激活可以稍后完成,因为在评估期间 Windows 仍可运行。
③ 创建虚拟机
- 启动 VirtualBox 并点击 “New”
- 设置名称(例如
Windows11) - 类型:Windows / 版本:Windows 11(64 位)
- 分配至少 2 GB 内存和 40 GB 磁盘空间
④ 挂载 ISO 并安装 Windows
选择已创建的虚拟机,然后打开:
[Settings] → [Storage] → [Optical Drive],并附加下载好的 ISO 文件。
启动虚拟机并按照标准的 Windows 安装流程进行操作。
⑤ 运行 .exe 文件
Windows 启动后,.exe 文件即可正常执行。
要在 Ubuntu 与 Windows 之间交换文件,请在 VirtualBox 中配置共享文件夹。
6.3 使用 VMware Workstation Player
VMware 通常比 VirtualBox 更快、更稳定,因而在专业场景中广受欢迎。
在 Ubuntu 上,可通过从官方网站下载 .bundle 安装程序来进行安装。
chmod +x VMware-Player.bundle
sudo ./VMware-Player.bundle
图形界面安装程序会启动并引导完成设置。
优势
- 强大的 GPU 虚拟化支持,适用于 3D 应用
- 对网络和 USB 设备的稳健支持
劣势
- 系统资源消耗较高
- 商业使用需要付费授权
6.4 使用 QEMU / KVM(高级用户)
QEMU 与 KVM 是直接内置于 Linux 的虚拟化技术。
它们非常适合自动化、开发和测试环境。
安装
sudo apt install qemu-kvm libvirt-daemon-system virt-manager
GUI 管理
启动 virt-manager 可提供类似 VirtualBox 的图形界面。
关键特性
- 接近原生的性能
- 强大的命令行工具,如
virsh和qemu-system-x86_64 - 灵活的虚拟网络和快照管理
6.5 使用容器作为轻量级替代方案
作为完整虚拟机的轻量替代方案,容器也可以使用。
一个示例是将 Wine 运行在 Docker 容器中。
虽然这并未提供完整的虚拟化,但容器化的 Wine 环境提升了可复现性和隔离性。
示例:在 Docker 容器中运行 Wine
docker run -it --rm \
--name wine-env \
-v ~/Downloads:/data \
scottyhardy/docker-wine
在容器内部,你可以运行:
wine /data/app.exe
优势
- 对宿主系统无影响
- 易于与其他用户共享配置
- 适用于自动化和 CI/CD 工作流
劣势
- GUI 配置可能较为复杂(需要 X11 转发)
- 音频和 3D 加速支持有限
6.6 方法对比
| Method | Characteristics | Advantages | Disadvantages | Best Use Case |
|---|---|---|---|---|
| VirtualBox | General-purpose, stable | Free and easy GUI management | High resource usage | Personal and learning use |
| VMware Player | High performance, professional | Strong GPU virtualization | Paid license for commercial use | Business software and 3D apps |
| QEMU / KVM | Fast and flexible | Near-native performance | More complex setup | Development and testing |
| Docker + Wine | Lightweight | Isolated environment | GUI limitations | Automation and reproducible setups |
6.7 应该选择哪种方案?
按用途给出的推荐:
| Purpose | Recommended Method |
|---|---|
| Try lightweight tools | Wine or Docker + Wine |
| Run business applications reliably | VirtualBox or VMware |
| System development and automated testing | QEMU / KVM or Docker |
| Simple GUI-based execution | VirtualBox |
| Full Windows compatibility required | Virtual machine only |
6.8 小结
虚拟机和模拟器相较于 Wine 会消耗更多系统资源,但它们提供 远超 Wine 的兼容性和稳定性。
对于业务关键软件或依赖驱动的应用,运行完整的 Windows 环境是最可靠的方案。
通过结合 Docker 与 QEMU/KVM 等工具,还可以构建高级工作流和自动化环境。
7. 使用 WSL(Windows Subsystem for Linux)
到目前为止,我们主要关注 在 Ubuntu 上运行 Windows 应用。
然而,也有相反的做法:在 Windows 中运行 Ubuntu。
这正是 WSL(Windows Subsystem for Linux) 所实现的。
借助 WSL,Ubuntu 可以几乎原生地运行在 Windows 上,且 Windows 的 .exe 文件可以直接在 Ubuntu 环境中执行。
本节将说明 WSL 的工作原理、如何进行设置以及如何通过它运行 .exe 文件。
7.1 什么是 WSL?—— “Windows 中的 Ubuntu”
WSL(Windows Subsystem for Linux)是微软开发的一项技术,允许 Linux 环境直接在 Windows 上运行。
与传统的虚拟机不同,WSL 与 Windows 内核紧密集成,提供 轻量级且高性能的 Linux 执行环境。
WSL 2 现已成为标准,使用真实的 Linux 内核,提供显著提升的兼容性和性能。
7.2 在 WSL 2 上安装 Ubuntu
① 启用 WSL
以管理员身份打开 PowerShell 并运行以下命令:
wsl --install
此命令会自动安装 WSL 2 和 Ubuntu。
如果已安装 WSL 1,请使用以下命令升级:
wsl --set-default-version 2
② 启动 Ubuntu
安装完成后,“Ubuntu”会出现在开始菜单中。
首次启动时,系统会提示你创建用户名和密码。
7.3 从 Ubuntu(WSL)运行 Windows .exe 文件
WSL 的一个关键优势是能够 直接从 Ubuntu 终端启动 Windows 应用程序。
notepad.exe
此命令会启动 Windows 记事本。
任何 Windows 可执行文件都可以通过在文件名后添加 .exe 来调用。
explorer.exe .
calc.exe
cmd.exe
这使得 Ubuntu 命令与 Windows 应用程序可以无缝结合。
无缝文件共享
在 WSL 中运行的 Ubuntu 可以通过以下路径访问 Windows 文件系统:
/mnt/c/
示例:
cd /mnt/c/Users/YourName/Downloads
app.exe
这让你可以轻松在 Ubuntu 中下载文件,并使用 Windows 应用程序打开它们。

7.4 从 Windows 运行 Ubuntu 命令
这种集成同样适用于相反方向。
在 PowerShell 或命令提示符下,你可以直接运行 Ubuntu 命令:
wsl ls -la
wsl python3 script.py
这使得 WSL 在 集成开发和测试工作流 中尤为有用。
7.5 WSL 的局限性
| Item | Description |
|---|---|
| GUI application support | WSL 2 supports GUI apps via wslg, but performance may vary |
| Hardware access | Direct access to USB devices and GPU drivers is limited |
| Performance | File I/O can be slower than native Linux in some scenarios |
| Networking | Certain ports or VPN configurations may cause restrictions |
7.6 实际开发使用案例
示例 1:VS Code + Ubuntu
使用 “Remote - WSL” 扩展,Visual Studio Code 可以直接在 Ubuntu 中编辑和运行文件。
示例 2:WSL 2 上的 Docker
Docker Desktop 与 WSL 2 原生集成,使 Linux 容器能够在 Windows 上高效运行。
示例 3:Linux 工具与 Windows 应用的组合
ffmpeg、grep、awk 等 Linux 实用工具可以与 Windows 应用程序结合,实现灵活的工作流。
7.7 WSL 的优缺点汇总
| Aspect | Advantages | Disadvantages |
|---|---|---|
| Performance | Near-native speed | Some I/O operations may be slower |
| Compatibility | Direct execution of Windows applications | Not usable on standalone Ubuntu systems |
| Setup | Official support, simple installation | Requires Windows 10 or 11 |
| Development | Excellent integration with VS Code and Docker | Hardware access limitations |
7.8 小结
WSL 是 Windows 用户开始使用 Ubuntu 的最简便方式。
它能够直接在 Ubuntu 中运行 Windows .exe 文件,使其非常适合 混合 Windows‑Linux 环境。
然而,WSL 与在独立的 Ubuntu 系统上运行 Windows 应用本质上是不同的。
请根据你的主要环境是 Windows 还是 Ubuntu 来决定是否采用此方案。
8. 实际案例:在 Ubuntu 上运行 .exe 文件的结果
本节汇总了在 Ubuntu 上使用不同方法测试真实 Windows 应用的结果。
既包括成功案例,也包括失败案例,以提供更真实的预期。
8.1 测试环境
- 操作系统:Ubuntu 22.04 LTS(64 位)
- CPU:Intel Core i7
- 内存:16 GB
- 显卡:NVIDIA GTX 系列(已安装专有驱动)
- Wine:WineHQ Stable 9.x
- 虚拟化:VirtualBox 7.x(Windows 10 Pro 64 位 客户机)
- WSL:Windows 11 Pro + Ubuntu 22.04(WSL 2)
8.2 成功案例
① Notepad++
- 方法:Wine
- 结果:功能完整,无字符问题
- 备注:轻量级应用在 Wine 下表现极佳
wine notepad++.exe
启动时间约 3 秒,设置和插件均正常工作。
② 7‑Zip
- 方法:Wine 与虚拟机
- 结果:在两种环境中均运行稳定
实用评分:★★★★★
③ Paint.NET
- 方法:Wine + winetricks(
dotnet40) - 结果:可用于轻度图像编辑
实用评分:★★★★☆
8.3 条件成功案例
① Excel Viewer
- 方法 : Wine + winetricks (
vcrun2015,msxml6) - 结果 : 文件正确打开,打印不稳定
实用评分: ★★★☆☆
② RPG Maker 游戏
- 方法 : Wine
- 结果 : 标题画面加载,有些音频和图像问题
实用评分: ★★☆☆☆
③ LINE (Windows 版本)
- 方法 : Wine + winetricks
- 结果 : 登录画面加载,通知不支持
实用评分: ★★★☆☆
9. 最终结论 — 选择合适的方法
在 Ubuntu 上运行 .exe 文件完全可能,但最佳方法取决于您的优先事项。
- 对于轻量级工具和快速测试 → Wine
- 对于最大兼容性和商业使用 → 虚拟机
- 对于以 Windows 为中心的开发工作流程 → WSL
理解技术背景和权衡取舍,可以让您为您的环境选择最高效和最可靠的解决方案。
