{"id":17968141,"url":"https://github.com/konloch/jaxon","last_synced_at":"2025-10-13T20:33:21.305Z","repository":{"id":249869507,"uuid":"831290849","full_name":"Konloch/Jaxon","owner":"Konloch","description":"Native Java SDK built on top of SJC, compiling Java to native code without bytecode or virtual machines.","archived":false,"fork":false,"pushed_at":"2024-08-03T01:51:11.000Z","size":3963,"stargazers_count":11,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-20T12:13:53.176Z","etag":null,"topics":["compiler","java-compiler","operating-system","operating-systems","package-manager","sdk","simple-java-compiler","sjc","software-development-kit"],"latest_commit_sha":null,"homepage":"https://konloch.com/Jaxon","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Konloch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-20T06:26:56.000Z","updated_at":"2024-11-24T02:01:16.000Z","dependencies_parsed_at":"2025-03-25T08:43:36.864Z","dependency_job_id":null,"html_url":"https://github.com/Konloch/Jaxon","commit_stats":null,"previous_names":["konloch/jaxon"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Konloch/Jaxon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Konloch%2FJaxon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Konloch%2FJaxon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Konloch%2FJaxon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Konloch%2FJaxon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Konloch","download_url":"https://codeload.github.com/Konloch/Jaxon/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Konloch%2FJaxon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279016921,"owners_count":26085908,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compiler","java-compiler","operating-system","operating-systems","package-manager","sdk","simple-java-compiler","sjc","software-development-kit"],"created_at":"2024-10-29T14:20:19.019Z","updated_at":"2025-10-13T20:33:21.271Z","avatar_url":"https://github.com/Konloch.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jaxon\nJaxon is a \"with the batteries\" SDK built on top of SJC - a compiler that compiles a tailored subset of Java directly to native code, eliminating the need for bytecode and virtual machines.\n+ [Click here for a quick preview of some example projects](https://github.com/Konloch/Jaxon/tree/master/community-projects)\n\n---\n\n## What Does It Do?\n+ Compiles Java 1.6 source to multiple native architectures.\n+ Code templates for [Cross-platform Win32 / X11 Linux Applications](https://github.com/Konloch/Jaxon/tree/master/community-projects/application/demo-graphical), and even multiple [operating system templates](https://github.com/Konloch/Jaxon/tree/master/community-projects/operating-system).\n+ Install to System-Path / Uninstall.\n+ Deploys Intellij compatible JDK to enable JetBrains tooling to work.\n\n---\n\n## Jaxon Quick Start Guide\nTo help get new users started, use the following guide to get yourself setup.\n\n### Jaxon Installation\n[First start by downloading Jaxon for your platform](https://github.com/Konloch/Jaxon/releases/latest)\n+ Run the command `jaxon install`\n  + If you're not on windows you'll have to **add Jaxon to your System-Path manually**\n### Jaxon New Project\nStart an initial blank project based off the console package\n+ Run the command `jaxon init`\n  + If you have a project name in mind, use `jaxon init [project-name]`\n+ This will create a new project, following the on-screen directions open that directory in your Java IDE of choice\n### Jaxon Package Manager\nCommunity projects are accessible through Jaxon package manager\n+ Run the command `jaxon package [name] [version*] [project-name*]` - * *denotes optional command*\n+ Example Commands:\n  + `jaxon package console`\n  + `jaxon package console 0.1.0`\n  + `jaxon package console 0.1.0 project-name`\n+ For a [full list of packages click here](https://github.com/Konloch/Jaxon/tree/master/community-projects)\n+ Use the build scripts to build binaries\n### Jaxon JetBrains Tooling (Intellij)\nAt some point you're going to want to get Intellij working:\n+ If you've already ran `jaxon install`\n  + Your JDK will be in {user}/.jaxon/JDK\n+ If you haven't done that, just run the following command\n  + `jaxon jdk jdk-1.8`\n+ Then set the JDK folder as the SDK in Intellij\n    + F4 for Module Settings\n    + Project \u003e SDK \u003e Edit\n    + Click the Plus \u003e Add JDK...\n    + Paste in the path sent from the Jaxon CLI\n\n---\n\n## Jaxon Packages\n+ For a full list of packages, visit the [Community Projects](https://github.com/Konloch/Jaxon/tree/master/community-projects)\n+ The packages contain all the basics to get you running (`Console` shows hello world, `Graphical` shows windowing \u0026 image drawing)\n+ Each package can contain a different application starting class\n    + You can find this class by going into Windows/kernel/Kernel.java \u0026 Linux/kernel/Kernel.java\n+ The packages contain the entire standard library, edit these as much as you want\n    + One benefit is you are not restricted by the concept of precompiled libraries, you are always provided the source unless you are invoking a DLL\n+ Packages also contain a versioning system, using the [package.list](https://raw.githubusercontent.com/Konloch/Jaxon/master/community-projects/package.list) you can view all the published versions of a template\n  + Using a package with a specific version: `jaxon package console 0.1.0`\n  \n---\n\n## Jaxon Command Line\n+ `init` - Create a blank project with the latest runtime\n  + **Optional Commands:** `jaxon init [project-name*]` - * *denotes optional command*\n  + Example Command:\n    + `jaxon init`\n    + `jaxon init project-name`\n+ `package` - Download a Jaxon package source code from the Jaxon Community Project mono repo\n  + **Optional Commands:** `jaxon package [name] [version*] [project-name*]` - * *denotes optional command*\n  + Example Commands:\n    + `jaxon package console`\n    + `jaxon package console 0.1.0`\n    + `jaxon package console 0.1.0 project-name`\n+ `build` - Build using a specific profile\n  + **Available Profiles:** (`win-exe`, `win-app`, `lin`, `atmega`, `os-32`, `os-64`)\n  + Example Command: `jaxon build win-exe src/shared/src src/windows/src`\n+ `install` - Install Jaxon to the computer\n  + Example Command: `jaxon install`\n+ `uninstall` - Uninstall Jaxon from the computer\n  + Example Command: `jaxon uninstall`\n+ `upgrade` - Upgrade the Jaxon installation on the computer\n  + Example Command: `jaxon upgrade`\n+ `jdk` - Create a Jaxon-Blank-SDK that will resolve all issues with Jaxon projects\n  + Example Command: `jaxon jdk jdk-1.8`\n  * **Load the SDK Into Intellij:**\n    + F4 for Module Settings\n    + Project \u003e SDK \u003e Edit\n    + Click the Plus \u003e Add JDK...\n    + Paste in the path sent from the Jaxon CLI\n+ `sjc` - Access underlying SJC command-line\n  + Example Command: `jaxon sjc sc -s 1m -a 4198912 -l -o boot -O #win`\n  + For a [complete list of SJC commands click here](https://www.fam-frenz.de/stefan/man042_0182eng.pdf)\n\n---\n\n## Jaxon Upgrade Procedure\n[First start by downloading Jaxon for your platform](https://github.com/Konloch/Jaxon/releases/latest)\n+ Run the command `jaxon upgrade`\n    + If you're not on windows you'll have to **add Jaxon to your System-Path manually**\n\n---\n\n## How Does Jaxon Work\n+ In an effort to make SJC easier to learn and write:\n    + Jaxon acts as a wrapper for the compiler.\n    + It also provides templates \u0026 packages to aid creating new applications.\n+ Since SJC has no concept of a standard library:\n    + Jaxon is meant to fix that by providing packages that contain a maintained runtime.\n\n---\n\n## Jaxon vs SJC Differences\n+ Jaxon is built on top of SJC and requires it to build.\n+ Jaxon acts as a package manager for the community projects repository.\n+ Jaxon provides built-in packages - allowing you to easily start new projects.\n    + `jaxon package console`\n+ Jaxon projects use Maven to separate the modules.\n+ Jaxon provides a tool to create a Jaxon-Blank-SDK to make all Jaxon templates compatible with JetBrains tooling. (Intellij)\n+ Jaxon provides a build wrapper on top of the SJC build system.\n    + `jaxon build win-exe` is the equivalent of `sjc sc -s 1m -a 4198912 -l -o boot -O #win`\n\n---\n\n## What Does SJC Do?\n+ SJC compiles a subset of Java 1.6* compliant syntax to:\n    + Native IA32 \u0026 x86_64\n        + Executables for Windows \u0026 Linux\n            + Win32 console application\n            + Win32 GUI application\n            + Linux 32 bit binary with library support\n        + Bootloader for Custom Operating Systems\n            + Native IA32 image to boot\n            + Native AMD64 image to boot\n    + ARM 7\n        + Atmega Atmel Hexout (Controllers such as LPC2103)\n\n---\n\n## Java Differences\n+ Source code only - compiles directly to native instead of bytecode\n    + No virtual machines either\n    + Libraries are only in the form of source code (Unless a DLL)\n+ No enums\n+ Generics do not exist\n    + Collections, lists \u0026 maps do not exist\n+ Strings cannot be concat'd using the plus operator `+`\n    + **Instead, use StringBuilder**\n\n---\n\n## Special Classes\n+ Kernel: The main class for each platform.\n+ MAGIC: Code-generating access to the hardware.\n    + For example access to the RAM using MAGIC.rMem8(addr) or MAGIC.wMem32(addr, value).\n+ STRUCT: Parent class for custom classes that allow access to structured RAM areas without objects.\n+ FLASH: Keep instances in flash (ie: do not copy to RAM).\n+ @SJC: Instructions for the compiler to perform special treatment of the current method or the subsequent code.\n    + For example marking the current method as an interrupt handler using @SJC.Interrupt or marking static final arrays as immutable and thus to be kept in flash using @SJC.Flash.\n\n---\n\n## Jaxon Community Projects\n+ Jaxon packages are hosted in the [Community Projects](https://github.com/Konloch/Jaxon/tree/master/community-projects) area of the repo.\n\n---\n\n## Requirements\n+ Jaxon runs out of the box without any requirements.\n  + **Just make sure to install Jaxon via** `jaxon install` and you'll be good to go for full development.\n+ Jaxon runs on **Windows, MacOS, Linux** \u0026 has a Java Jar variant if those binaries aren't compatible.\n\n---\n\n## Notes\n+ *Note about Java 1.6 - Certain features of 1.4-1.6 are added.\n    + Enhanced for-loops is one example.\n+ **Fully compatible with Intellij**\n\n---\n\n## Links\n+ [Jaxon Community Projects](https://github.com/Konloch/Jaxon/tree/master/community-projects)\n+ [SJC Home Page](https://www.fam-frenz.de/stefan/compiler.html)\n+ [SJC Manual English](https://www.fam-frenz.de/stefan/man042_0182eng.pdf)\n+ [SJC Manual German](https://www.fam-frenz.de/stefan/man046_0190.pdf)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkonloch%2Fjaxon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkonloch%2Fjaxon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkonloch%2Fjaxon/lists"}