While you're here, please consider supporting GamingOnLinux on:
Reward Tiers: Patreon. Plain Donations: PayPal.
This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!
You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Reward Tiers: Patreon. Plain Donations: PayPal.
This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!
You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register
- Steam Controller 2 is apparently a thing and being 'tooled for a mass production' plus a new VR controller
- Steam Deck OLED: Limited Edition White and Steam Deck Australia have launched
- NVIDIA stable driver 550.135 released for Linux
- Sony reportedly looking to acquire Kadokawa, owner of ELDEN RING dev FromSoftware
- Dungeon Clawler will grab hold of your free time now it's in Early Access, plus keys to give away
- > See more over 30 days here
-
UnderworldGodot is an engine recreation of Ultima Under…
- Shmerl -
Proton Experimental for Steam Deck / Linux fixes Disgae…
- BladePupper -
JSAUX released their first White 6-in-1 Docking Station…
- RFSharpe -
Proton Experimental for Steam Deck / Linux fixes Disgae…
- Cybolic -
Dungeon Clawler will grab hold of your free time now it…
- Liam Dawe - > See more comments
- What have you been listening to?
- Shmerl - What do you want to see on GamingOnLinux?
- Linux_Rocks - Our own anti-cheat list
- Liam Dawe - Weekend Players' Club 11/22/2024
- Liam Dawe - Types of programs that are irritating
- Cyril - See more posts
View PC info
In any case here is the problem: I have released my game on Steam. Steam provides 32bit .so libraries to connect to the Steam API. The game is written in Java. In order to use the 32bit .so library (I don't think there is a 64 bit one?), I need to run the game via a 32bit JVM. So far so good.
As it turns out, the 32bit JVM surprisingly runs on the 64bit Steam OS (Intel Brix). However, the same application does not run via "regular" Steam (not the Steam OS), if the Linux operating system is 64bit and throws the following error:
java.lang.ClassNotFoundException: com.ageofconquest.app.user.Main
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:59)
at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:57)
What needs to be done to get the 32bit JVM to work on a regular 64bit Linux installation? What does the Steam OS do different that it works there? Are there some additional libraries that are installed for compatibility?
View PC info
View PC info
SteamOS is based on Debian, is the regular Steam you've tried on a Debian too (if possible same version than the SteamOS basis) or a different distro?
View PC info
View PC info
But I will try to provide you some ideas.
Steam OS may come with different classpath set (through environment variable for example) or you're just comparing 2 setups with different classpaths (one of them may have classpath set, other don't).
In general - ClassNotFoundException = you do not have on a classpath a jar that contains class that you want access.
And according to stack trace it looks like Steam code cannot find your class, not the other way around (OK, maybe not Steam code, but the code that tries to install the game).
I would say one should be true - either classpath issue or like @abelthorne suggested - you're using different JVMs (maybe they have different Classloader behaviour?).
View PC info
xorg-xrandr
: that might do the trick! I forwarded the information. :-DThe game is using Oracle Java 32bit. I find it odd too to get a "ClassNotFoundException". I'd assume there to be another error if the binaries are not able to run on 64bit? However, that same 32bit Oracle JVM works on 64bit Steam OS, just not anywhere else. Doesn't work via regular Steam client, just the Steam OS.
Also, I got 64bit binaries (not for Steam) which work fine! Unfortunately, in order to integrate with Steam, I need to use the 32bit JVM. Somehow I think this should work with the right compatibility libraries installed! Maybe xorg-xrandr might do the trick?
EDIT: re-classpath: the JVM is bundled & the classpath is fixed (relative to the working directory). I cannot see what would change by running it on 64bit Linux? I think the error might not be correct, but then I might be wrong?
View PC info
What do you mean by "that same 32bit Oracle JVM works on 64bit Steam OS, just not anywhere else"? How have you tested it on both OS?
View PC info
I was given the stacktrace that is produced on the clients Linux computer while running the game via Steam. It's possible the 32bit JVM is working for other people on Linux 64bit via Steam. Sorry, I don't have that information.
View PC info
View PC info
http://store.steampowered.com/app/314970
Then email me at contact at ageofconquest.com and mention this thread! - Thanks for testing :-D
View PC info
In that case, you should ask him/her a few details about the system, like the JVM used (update-alternatives --config java will list the JVM installed and allow to choose one if there's multiple choices − it has to be run as superuser, i.e. through sudo on distros that have it), the distro and version used.
Also, is your customer running Steam through a terminal to get the output given in your first post or simply the game without Steam (the behaviour would not be the same due to the Steam runtime)?
On your side, you can try to boot a different distro as live version, like Ubuntu, if your game is not too graphic intensive (as you won't be able to install eventual proprietary GPU drivers). You'll have to install Steam and maybe Java on it but it's in RAM, you don't install anything on your HD and don't mess with your current setup. That might allow you to check if you can reproduce the issue outside of SteamOS.