Important
Project has been archived. Development is continued here
A cross-platform Java Swing based GUI application to view information about your hardware.
- Uses Windows Management Instrumentation
- Windows 10 and 11 are supported out of the box
- Windows 7SP1, 8 and 8.1 need Windows Management Framework 5.1 to be installed. See WMF availability across Windows Systems
- Uses
dmidecode - Any distribution is supported as long as
dmidecodeis or can be installed.
- Planned
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.
- JDK 21 or later
- Build Tool: Maven (optional, maven wrapper will be provided)
- 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@linuxThe 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
jpackageto generate native app images - Output format depends on the target OS
- A minimal runtime is generated using
jlinkwhich is then packaged into the target build - This makes your build portable
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:
./mvnw -Pnative -DskipNativeBuild=true exec:exec@java-agentThis 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.
./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"A modified build of Nautilus with hidden Hardware ID and Processor ID, running on Windows 11 24H2
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