What is an .exe file — and how do you open one?
By Andrew Nakas · Published September 22, 2026 · ~8 minute read
Most people meet the question the same way: something downloaded a file ending in .exe, and double-clicking it did nothing useful. Maybe you're on a Mac. Maybe you're on a work laptop that won't let you install anything. Maybe it is a Windows PC and it still refused to start.
This covers what the file actually is, how to open one on each platform, how to look inside without running it, and — the part most guides skip — when you should not open it at all.
What an .exe actually is
An .exe is a program, not a document. Opening it doesn't display anything; it tells your operating system to start executing the machine code inside. That is the whole reason the rest of this article is more complicated than "double-click it".
Technically it's a PE file — Portable Executable, Microsoft's format since Windows NT. Inside, a PE contains:
- A short DOS stub at the very start, left over from the 1980s. It's the reason an old
.exerun under DOS prints "This program cannot be run in DOS mode." - A PE header describing which CPU the code targets (32-bit x86, 64-bit x64, ARM), which Windows version it expects, and where everything lives in memory.
- Sections holding the actual machine code, fixed data, and resources — icons, dialog layouts, embedded text.
- An import table listing the Windows libraries it needs, like
kernel32.dlloruser32.dll.
That import table is why an .exe is rarely self-sufficient. It expects Windows to exist around it. Hand the same file to macOS or Linux and nothing there speaks its language — the file is fine, the audience is wrong.
Two other things wear the same extension and behave differently: installers (a small program whose job is to unpack a real program onto your disk) and self-extracting archives (a zip with a decompressor bolted on the front). Both matter later.
Opening one on Windows
Double-click it. That's genuinely the whole procedure, and if it worked you wouldn't be reading this. When it doesn't, it's almost always one of these:
- SmartScreen blocked it. A blue "Windows protected your PC" box appears. If you're certain of the source, "More info" → "Run anyway". If you're not certain, stop — see the safety section below.
- It needs admin rights. Right-click → "Run as administrator". Installers usually do.
- It's 16-bit. Anything from the Windows 3.x era won't start on 64-bit Windows at all; the subsystem was removed. See running 16-bit Windows 3.x software.
- A missing DLL. An error naming a specific
.dllmeans the program expects a library or runtime you don't have. The file usually needs to sit in its original folder alongside its companions. - It's just old. Why old programs won't run on Windows 11 covers the compatibility-mode options.
Opening one on a Mac
macOS cannot run a .exe natively and never could — different CPU conventions on Apple Silicon, and a completely different operating system underneath either way. Renaming the file does nothing. Your realistic options, honestly ranked:
- Run it in a browser tab. Nothing to install, and it works the same on Intel and Apple Silicon. This is what this site's loader does — a WebAssembly build of Wine plus an x86 emulator, running locally in the tab. Your file is never uploaded anywhere. The limit is real and worth stating: it targets classic 32-bit Win32 software, roughly 1995–2008, at about 10–40% of native speed. A legacy utility or an old game, yes. Modern 64-bit applications, no.
- Install Wine or CrossOver. More capable and much more setup. Wine is free; CrossOver is commercial with better hand-holding.
- A virtual machine. Parallels or VMware with a real Windows licence. The most compatible answer and the most expensive one, in money and disk space.
- Boot Camp. Intel Macs only. Gone on Apple Silicon.
If the goal is "open this one old program once", the browser route is usually the proportionate one. If the goal is "run Windows software regularly on this Mac", a VM is what you actually want.
On a Chromebook
Same situation as macOS, with one extra wrinkle: managed school and work Chromebooks often forbid installing anything, including the Linux container. The no-install browser route is frequently the only one that isn't blocked, and it works on ARM Chromebooks too, because the CPU is emulated regardless. We wrote this one up separately — four ways to run Windows software on a Chromebook.
On Linux
Install Wine from your distribution's package manager, then wine program.exe. Linux has the best native story outside Windows itself: Wine is mature, and for games Valve's Proton builds on it. If you'd rather not install anything, the browser route works here as well.
On Android and iOS
Honestly: you mostly can't, and guides that suggest otherwise are wasting your time. There is no supported way to run Windows software on iOS. On Android, emulators that boot a whole Windows environment exist but are slow and fiddly. A browser tab will open small classic programs on either, which is a genuinely low bar — useful for a look at an old game, not for real work.
If you only want to see what's inside
Very often the real goal isn't running the program at all. You want one file out of it — a document, an image, a driver, a data file from something that no longer installs. You don't need to execute anything to do that.
- Try an archive tool first. Many installers and all self-extracting archives open straight up in 7-Zip as if they were ordinary zips. Right-click → "Open archive". You can also do it in a browser with the archive extractor here.
- Installers have their own unpackers.
innoextracthandles Inno Setup,cabextracthandles CAB-based ones, andmsiexec /adoes an administrative extract of an.msi. Full walkthrough: how to extract files from an old installer. - To inspect the executable itself — what it imports, what resources it carries, whether it's 32- or 64-bit — you want a PE viewer rather than a file opener. That answers "what is this thing" without ever running it.
This route is also the safe one. Reading a file is not the same as executing it.
Before you open one: is it safe?
An .exe can do anything your user account can do. Most guides bury this; it deserves to be the loudest paragraph here.
- Where did it come from? The vendor's own site is a different proposition from an email attachment, a download aggregator, or a link in a chat message. If you can't name the source, don't run it.
- Does the name look engineered?
invoice.pdf.exeis not a PDF. Windows hides known extensions by default, which is exactly what that trick relies on. - Scan it. Upload to VirusTotal for a check against dozens of engines before running anything you're unsure of.
- Don't trust a "fixed" crack or keygen. That category is the most reliable malware delivery mechanism on the internet.
- Prefer extracting to executing when you only need a file from inside, using the tools above.
A browser sandbox helps with some of this and not all of it: a program running in a tab has no access to your real filesystem, so it can't encrypt your documents. It is a meaningful containment boundary, not a licence to run things you have no reason to trust.
Quick answers
- Can I convert an .exe to something else? No. Converters advertising this are either extracting an archive or selling you nothing. The code inside targets a specific CPU and operating system.
- Why does it say "This program cannot be run in DOS mode"? You're seeing the DOS stub. It means a Windows executable was run somewhere that isn't Windows.
- Nothing happens when I double-click. Often a console program that opened, printed, and exited instantly. Open a terminal, then run it from there so the window stays.
- Can I open an .exe without Windows? Yes — Wine on Mac or Linux, a virtual machine, or a browser tab for smaller classic programs.
The short version
An .exe is a Windows program, so "opening" it means running it, which is why it's easy on Windows and awkward everywhere else. If you need to use it, pick by platform and by how often: a browser tab for one old program, Wine for regular use, a VM for anything modern. If you only need something out of it, use an archive tool and never execute it at all. And whichever route you take, know where the file came from first.
If you'd like to try the no-install route now, the loader is here — drop in an .exe and it runs in the tab, on your own machine. What does and doesn't work is set out plainly in the compatibility guide.