JOpt TourOptimizer on Windows Platforms
This document describes how to host JOpt TourOptimizer locally on systems running Microsoft Windows.
It is intended for developers, system engineers, and integrators who want to run JOpt on Windows machines for development, testing, or controlled on-premise deployments.
The document focuses on container-based execution, which is the recommended and supported approach on Windows. Native execution of the Spring application is technically possible but not covered here.
System Requirements
The following prerequisites are required:
- Windows 10 / 11 (Pro or Enterprise) or Windows Server 2019+
- Docker-compatible container runtime with Linux container support
- CPU with hardware virtualization support
- Minimum recommended resources:
- CPU: 2 cores
- Memory: 4 GB RAM
The following Windows features must be enabled:
- Windows Subsystem for Linux (WSL 2)
- Hyper-V
- CPU virtualization enabled in BIOS/UEFI
These features are mandatory for running Linux containers on Windows.
Deployment Model
On Windows, JOpt TourOptimizer runs as a containerized Spring application inside a Linux container:
- Exposes REST APIs over HTTP
- Uses environment variables or configuration files for configuration
- Writes logs to standard output
- Runs as a single-node deployment
This model is well suited for:
- Local development
- Integration and system testing
- Demonstrations
- Small or controlled on-premise installations
Container Runtime Setup
Install a Docker-compatible container runtime that supports Linux containers on Windows.
After installation, verify that the runtime is available and running:
docker version
Ensure that the container runtime is configured to use Linux containers, not Windows containers.
Running JOpt TourOptimizer
Basic Startup
Start JOpt TourOptimizer using the following command:
docker run `
--name jopt-touroptimizer `
-p 8081:8081 `
dna-evolutions/jopt-touroptimizer:latest
Once started, the application is reachable at:
http://localhost:8081
Configuration
Environment-Based Configuration
JOpt follows standard Spring configuration conventions.
Configuration is supplied via environment variables.
Example:
docker run `
--name jopt-touroptimizer `
-p 8081:8081 `
-e SPRING_PROFILES_ACTIVE=windows `
-e DNA_DEFAULT_LIC=<license-key> `
dna-evolutions/jopt-touroptimizer:latest
Configuration via Files
Configuration files can be mounted into the container:
docker run `
--name jopt-touroptimizer `
-p 8081:8081 `
-v C:\jopt\config\application.properties:/app/config/application.properties:ro `
dna-evolutions/jopt-touroptimizer:latest
Spring Boot automatically detects configuration files located in standard search paths.
Resource Management
Limit resource usage explicitly to avoid contention on the Windows host:
docker run `
--name jopt-touroptimizer `
-p 8081:8081 `
--cpus="2.0" `
--memory="4g" `
dna-evolutions/jopt-touroptimizer:latest
Guidelines:
- Allocate one CPU core per concurrent optimization run
- Avoid CPU oversubscription
- Monitor memory usage closely for large optimization scenarios
Logging and Health Monitoring
Logs
Access application logs using:
docker logs jopt-touroptimizer
Logs are written to standard output and integrate naturally with container tooling.
Health Endpoints
If Spring Boot Actuator is enabled, health endpoints can be used for monitoring:
/actuator/health/actuator/health/liveness/actuator/health/readiness
Networking and Security
- Expose the service only on required interfaces
- Prefer
localhostbindings for development and testing - Use HTTPS if the service is exposed beyond the local machine
- Never embed license keys directly in scripts or PowerShell history
- Use firewall rules to restrict inbound access where appropriate
Updates and Lifecycle Management
To update JOpt TourOptimizer:
docker pull dna-evolutions/jopt-touroptimizer:<version>
docker stop jopt-touroptimizer
docker rm jopt-touroptimizer
docker run ...
Always validate new versions in a non-production environment before upgrading existing installations.
Limitations
- Windows deployments are intended for local or small-scale use
- Horizontal scaling and high availability require Kubernetes
- Windows containers are not supported
- Linux containers on Windows introduce additional virtualization overhead
Summary
Running JOpt TourOptimizer on Windows provides a reliable setup for Windows-centric development and controlled on-premise scenarios. Using Linux containers ensures consistent behavior across Windows, macOS, and Linux environments while preserving a unified operational model.
For production-grade, scalable, and high-throughput deployments, Kubernetes on Linux remains the recommended platform.