Question about native deploy vs Excelsior JET and their native deployment

Exactly, you don’t run around in a bullet proof vest all the time either, you trust that people don’t shoot you because they’d go to jail then :slight_smile: The rules for using your software are whatever you say they are (in the legal bounds of course), the actual copyright is always yours unless you explicitly give it away.

What if I told you I’m always prepared… vest and all? :P.

Thanks, but the rules all end up into the usual licensing agreements we see right? i.e., libraries/frameworks.

If you really want to protect your code you could write really bad style code that will cause lots of headaches.
However it will also make it nearly unmaintanable, so not a good idea.

(Eg stuff like a header that changes meaning depending on the amount of times its included ect.)

Excelsior guy here. You may need the Professional Edition if your game runs a lot of memory-intensive threads at the same time. Otherwise the Standard Edition is fine.

Pro also has other relevant features, but we have not ported some of them to the newer 64-bit versions yet. Startup optimization, mentioned by others, is one of those features; it is set to go 64-bit in version 11.

1 Like

Linux is fully supported (32-bit since 2004, 64-bit since 2013). May I ask what made you think otherwise?

Unless you go for a Charity Bundle, you get one year of support and upgrades includes in the price.

It goes straight to native, there is no intermediate C code.

My own code does not have any memory-intensive things, except the resource loading process. So it’s rather a question if the JME itself is not too heavy for Standard Edition.

Well, it’s rather easy to test - just grab an Excelsior JET evaluation, feed it with your game jars using all default settings, and compare performance of the resulting native executable with Classic Runtime vs. Desktop Runtime. See the section “Runtime Selection” in the Chapter “Application Considerations” in the User’s Guide.

1 Like

For those who are interested to use Excelsior.
Standard edition set free
https://www.excelsiorjet.com/buy#free-std

1 Like

I just read FrozenShade’s explanation of what Excelsior JET does. Can anyone tell me what the difference between that and say, Launch4j, is?

Excelsior JET compile your java app to native code means your app will not need JRE to run. After compiling with JET your app is not a java app anymore . All your jars will be converted to dlls in case of Windows.

Launch4j is a thin wrapper i think and it bundle JRE with your app so you yet need JRE to be installed on your system to run your app.

Guys please correct me if i am wrong :slight_smile:

And actually I am against with both approach because they ruin the meaning of being cross platform :relaxed:

well… you can generate a package for each platform…at build time. That’s cross platform enough, isn’t it?

This is what libGdx is doing to separate Android , iOS , Desktop.
But separating Desktop to Linux , Mac , Windows isn’t a bit nonsense ??
I do prefer to not bundle JRE with my app instead make separate installer for them.

It’s separating the distribution, but you still have the same code. You should always pick what’s easier for the user, IMO. And having a self contained package for your os is really straight forward. But both approach have their pro and cons.

1 Like

Sorry, just wanted to clarify, from what I read on launch4js website, I can bundle JRE, so users without Java can run the game? That’s my only concern tbh

Yes, user do not need to install Java then. But yet your game is a Java game and running on JRE in the behind, but when compiling with Excelsior JET your game is not a Java game anymore and your game is directly compiled to machine binary code instead of Java byte code.

1 Like

Thanks.

1 Like

javafx boundling also boundles a jre with it, but without using native compileation.
Basically you just get a larger application with a full jvm included.