Skip to content
This repository was archived by the owner on May 9, 2026. It is now read-only.

eggy03/Nautilus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

246 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Important

Project has been archived. Development is continued here

Nautilus

A cross-platform Java Swing based GUI application to view information about your hardware.

Cross-Platform Support

Windows

Linux

  • Uses dmidecode
  • Any distribution is supported as long as dmidecode is or can be installed.

Mac

  • Planned

Download

Pre-Built Binaries

Pre-built binaries are not signed, which means your antivirus or smart-screen software may flag it as an unwanted program. If there is a demand for it, I may start releasing them, but for now, building from source is a viable option since your AV or Smart Screen filter wouldn't flag it.

Building from source

Pre-requisites

  • JDK 21 or later
  • Build Tool: Maven (optional, maven wrapper will be provided)

Steps

  • Clone the repository
git clone https://github.com/eggy03/Nautilus.git
cd Nautilus
  • Build the application depending on your platform
./mvnw -Pdist package jpackage:jpackage@win
./mvnw -Pdist package jpackage:jpackage@linux

The generated binaries will be available in ../Nautilus/target/output

Note that each subsequent build requires manually clearing out the target folder or else the build will fail

  • The build uses jpackage to generate native app images
  • Output format depends on the target OS
  • A minimal runtime is generated using jlink which is then packaged into the target build
  • This makes your build portable

Native Builds (Experimental)

Nautilus also supports native builds via GraalVM. This feature is experimental and may produce unstable builds.

Native builds offer faster startup and reduced memory consumption. However, you will lose JVM's cross-platform compatibility.

To build a native image, you will require GraalVM JDK (25+ is recommended).

Building Nautilus is a 2-Step Process:

Step 1: Create reachability-metadata

./mvnw -Pnative -DskipNativeBuild=true exec:exec@java-agent

This launches the Nautilus GUI with the GraalVM tracing agent enabled. You must interact with the UI as thoroughly as you can, to enable proper generation of reachability-metadata. This will create the reachability-metadata.json in src/main/resources/META-INF/native-image/{groupId}/{artifactId} which is required in the next step.

Step 2: Build the native executable

./mvnw clean -Pnative package 

This performs ahead-of-time (AOT) compilation and produces a native executable in the target directory. Note that this is a resource intensive process.

After completion, you will need to run Nautilus via

./nautilus "<java.home.path>"

Native images do not include a JVM runtime, so java.home may be unavailable. Provide a valid JDK path manually as a launch argument.

Example:

./nautilus "C:/Users/Username/.jdks/graalvm-ce-25.0.2"

Screenshots

Windows

A modified build of Nautilus with hidden Hardware ID and Processor ID, running on Windows 11 24H2

Screenshot 2026-04-07 122534

Linux

A modified build of Nautilus with hidden System UUID and Processor ID, running on Bazzite 43, a Fedora based distribution and using dmidecode 3.6

Screenshot_20260408_200545

License

GPLv3

About

A cross-platform aimed Java Swing based GUI application to view Computer Information, based on the cimari and the dmidecode4j libraries. Now with experimental native build support.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages