Press ESC to close

Skip to main content
< All Topics
Print

How to Run a Golang File (Run Go Programs, Scripts, and Projects)

Overview

If you are wondering how to run a Golang file or how to run a Golang program, Go provides simple and efficient ways to execute code. You can run a single file, execute a multi‑file program, or build a standalone binary for production use.

This knowledge base article explains how to run Golang code in different scenarios, including scripts, module‑based projects, and compiled applications.

Quick Answer

Run a single Go file:

go run main.go

Run a Go module or project:

go run .

Build and execute a binary:

go build
./your-binary-name

Prerequisites

Before running a Go program, ensure:

  1. Go is installed on your systemgo version
  2. Your file has the .go extension
  3. The program contains package main and a main() function (for executables)

Running a Single Golang File

This is the simplest way to execute Go code.

Example: main.go

package main

import "fmt"

func main() {
    fmt.Println("Hello from Go!")
}

Run the file:

go run main.go

This command compiles the file temporarily and executes it immediately.

Running a Multi‑File Golang Program

If your program contains multiple files in the same directory (same package), run them together.

Run all files in the folder:

go run .

Run specific files:

go run main.go helpers.go utils.go

Building and Executing a Golang Program

To create a reusable executable, build the program.

go build

This produces a binary named after the project folder.

Run the binary:

./your-project-name

Build with a custom name:

go build -o app
./app

This approach is recommended for deployment and production environments.

Running a Golang Project (Modules)

Modern Go projects use modules for dependency management.

Initialize a module (first time only):

go mod init example.com/myproject

Run the project from the root directory:

go run .

Run a specific application inside a project structure:

go run ./cmd/server

Passing Command‑Line Arguments

You can pass arguments to your program after the file or package name.

go run main.go --port=8080

Read arguments inside the program using os.Args or the flag package.

Running Golang Tests

To execute tests in a project:

go test ./...

Verbose output:

go test -v ./...

Running a Golang Script

Although Go is not a traditional scripting language, you can use it for small utility tasks.

Example script file: cleanup.go

package main

import "fmt"

func main() {
    fmt.Println("Running cleanup task...")
}

Run it like a script:

go run cleanup.go

Common Errors and Solutions

Error: package main is not in GOROOT

Cause: Running the command from the wrong directory.

Solution: Navigate to the project folder and use:

go run .

Error: no required module provides package

Cause: Missing dependencies.

Solution:

go mod tidy

Error: main redeclared in this block

Cause: Multiple main() functions in the same package.

Solution: Keep only one entry point per executable.

Best Practices

  • Use go run for quick development testing
  • Use go run . for module‑based projects
  • Use go build for production binaries
  • Keep executable entry points in /cmd/<appname>/main.go for large projects

Conclusion

Running Golang code is straightforward whether you are executing a single file, a multi‑file program, or a full project. Use go run for immediate execution during development and go build to produce deployment‑ready binaries.

By following these practices, you can efficiently run, test, and distribute Go applications across environments.

Table of Contents