can i take an open source JVM for java and modify it to make java games to be executed by consoles like PS4, Xbox one or Switch?

edit: the license of JVM have to let me do as i want with the JVM, i have seen there is an openJDK JVM that we can download, but i ignore if i can take this to start working.

  • \$\begingroup\$ It depends on the license. A quick count shows at least 7 different permissive licenses for the various JVMs. As such, this question seems either 'too broad' (i.e. checking each license against each console is too many combinations) or a request for a tech recommendation (i.e which JVM can I use?) \$\endgroup\$
    – Pikalek
    May 18, 2018 at 19:15
  • 2
    \$\begingroup\$ This sounds like a question to ask Microsoft, Sony, or Nintendo respectively, to see if their developer agreements allow running a general virtual machine. These can open the door to unlicensed uses of the hardware (eg. a bug in the VM that allows players to run unsigned or pirated software), so platform holders sometimes stipulate that they're not permitted. The details would usually be protected by NDAs though, so going directly to the source is your best bet for a clear answer. \$\endgroup\$
    – DMGregory
    May 18, 2018 at 19:54

1 Answer 1


In the interest of giving this question a concrete answer:

There's no fundamental/technical limitation that would prevent a Java virtual machine or any other program from being developed/ported to run on a modern game console. They're general-purpose computers, so in principle anything that you can do on your desktop you could convince a console to do, with enough porting effort to make up for the differences in the environment and available dependencies/etc.

The bigger obstacle is whether you would be allowed to publish this general-purpose virtual machine software, or games depending on it, on those platforms. Software running on consumer versions of these consoles typically needs to be approved by the first party (Microsoft, Sony, Nintendo) and digitally signed so that it has permission to run. That means the software must be developed according to their specifications.

It's not uncommon for first parties to restrict the use of general-purpose virtual machines on their platforms. VMs let you run new code that wasn't part of the executable that was reviewed & approved when the software was published - maybe even code from an untrusted third party - so we can't make very good guarantees about its safety or reliability. A bug or security vulnerability in the VM could open their users up to harm from poorly-vetted VM scripts, or deliberate attacks from hackers using the VM to compromise their system or extract personal data.

A virtual machine could also let users bypass the signing checks that are supposed to ensure only approved, non-pirated software (of which the platform-holder gets a cut) runs on the device, directly threatening their business model.

So, while this may be technically feasible, there are good reasons why the makers of these consoles might refuse permission to publish software that contains this kind of general-purpose virtual machine.

The details of what each platform-holder will or won't accept are specific to their developer agreements, which might change at any time and are not necessarily public information, so this Q&A format isn't the best way to learn about those specifics. Instead, I'd recommend reaching out to the first parties themselves when signing up to develop on their platforms, and they'll be able to give you the most accurate and up-to-date policies that apply.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .