Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I've just upgraded my system, to Slack64 13.0. One of the applications I'm trying to migrate, from my old set-up, is pure Java. It came packed with it's own copy of Java, which was a 32-bit version, which doesn't run on my system, as it's a pure 64-bit. I don't really want to go multi-lib just for this one program.
As the application is Java, I was hoping I could, at least, try it with the Java shipped with Slack64. However, I get the following error:
Code:
Arkeia Smart Backup GUI (5.4.3)
Java Virtual Machine vendor: Sun Microsystems Inc.
Java Version: 1.6.0_16
Java 2 Runtime Environment version not supported: 1.6
This Java Virtual Machine is incompatible.
A Sun Java 2 Runtime Environment 1.4 or 1.5 is required.
Is there any way I can "fool" the application to run with this version of Java. I understand that even if I can "fool" it, it still may not work, because of the difference in the Java versions, but I'd at least like to give it a shot.
You might be able to run the 32 bit Java that came with the application using the setarch command with i386 or i686 option (or the i386 command). These exist on RHEL4 and RHEL5 - not sure about other distros.
Basically it tells it to run as if it is in a 32 bit environment.
Alternatively I'm not sure that 1.5 is only 32 bit - you might be able to run a 64 bit version of that with your apps. You should be able to get 1.5 from java.sun.com.
Last edited by MensaWater; 09-24-2009 at 04:34 PM.
You might be able to run the 32 bit Java that came with the application using the setarch command with i386 or i686 option (or the i386 command). These exist on RHEL4 and RHEL5 - not sure about other distros.
Basically it tells it to run as if it is in a 32 bit environment.
From the man page:
Code:
setarch This utility currently only affects the output of uname -m. For
example, on an AMD64 system, running 'setarch i386 program' will cause
'program' to see i686 (or other relevant arch) instead of x86_64 as
machine type. It also allows to set various personality options. The
default program is /bin/sh.
But even if that command did anything useful, I still can't run a 32-bit, dynamically linked application, which Java is, without loading all the 32-bit libraries and going full multi-lib.
setarch This utility currently only affects the output of uname -m. For
example, on an AMD64 system, running 'setarch i386 program' will cause
'program' to see i686 (or other relevant arch) instead of x86_64 as
machine type. It also allows to set various personality options. The
default program is /bin/sh.
But even if that command did anything useful, I still can't run a 32-bit, dynamically linked application, which Java is, without loading all the 32-bit libraries and going full multi-lib.
Cheers.
You can try on the x86 box pack your 32 bit Java into self-contained executable use statifier (http://statifier.sf.net) or Ermine (http://magicErmine.com) and then copy only one file to your x86_64 box
You can try on the x86 box pack your 32 bit Java into self-contained executable use statifier (http://statifier.sf.net) or Ermine (http://magicErmine.com) and then copy only one file to your x86_64 box
Finally got to try this. But it failed miserably:
With statifier
Code:
arkeiasb
Segmentation fault (core dumped)
And Ermine
Code:
arkeiasb
java: was packed with Ermine Trial and should be used for evaluation only.
java: license will expire in 31 day(s)
dl failure on line 732Error: failed /opt/arkeia/jre/lib/i386/client/libjvm.so, because libnsl.so.1: cannot open shared object file: No such file or directory
I guess Java is a little more complex, than a single executable, when it comes to this.
arkeiasb
java: was packed with Ermine Trial and should be used for evaluation only.
java: license will expire in 31 day(s)
dl failure on line 732Error: failed /opt/arkeia/jre/lib/i386/client/libjvm.so, because libnsl.so.1: cannot open shared object file: No such file or directory
I guess Java is a little more complex, than a single executable, when it comes to this.
So, any other ideas floating around out there.
Cheers.
When invoked in the simplest form both statifier and Ermine pack only
executable itself and shared libraries shown by ldd.
Neither of them able on its own guess what libraries dlopen'ed.
But you can specify them yourself - either using --ld_preload option if you need pack some more shared libraries or if you need whole directory --config your config_file and in the your_config_file put
Is there no way to install a 64 bit version of java 1.5?
To be honest, I didn't think that there was a 64-bit version, prior to 1.6. It seems I'm lucky, in that you can only download the 1.5 version until October 30th. I'll give that a try first.
If not, then, I guess I should try:
Quote:
Originally Posted by Valery Reznic
But you can specify them yourself - either using --ld_preload option if you need pack some more shared libraries or if you need whole directory --config your config_file and in the your_config_file put
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.