Ok, so it is a 64-bit incompatibility. The eternally useful mypodder application runs well on Windows and Linux in 32bit mode, but fails badly in Linux 64 bit (I have not tested in Windows x64 yet).
There is a way to get it working however, thanks to the fact that Sun’s official Java runtime environment runs well as a ‘self contained’ install. So I have installed 32bit java in a local folder, and run the linux java mypodder app from that.
Note; This is on Fedora 12, there is no reason at all why it will not also work on 64 bit ubuntu, arch, RH, etc… there is nothing Fedora specific in what I am doing here. You do need to know how to use the command line; if that means nothing to you I suggest getting a geeky friend/relative to help. You do not need root access for this!
Basically; go to http://java.sun.com/javase/downloads/ and select the ‘Download JRE’ button (you do not need the JDK developers kit).
On the next page, select ‘Linux’ (not linux- itanium or x64), select the ‘I agree’ button, and hit ‘Continue’ (the email address part is optional). On the next page select the ‘binary’ package, NOT the ‘rpm’ package. Look at the filename.. I downloaded ‘jre-6u18-linux-i586.bin’.
I then opened a terminal (shell) and made a folder for the install:
home> mkdir ~/java32 home> cd ~java32 home> mv ~/Downloads/jre-6u18-linux-i586.bin . home> sh jre-6u18-linux-i586.bin <Answer 'Yes' to the licence agreement>
Now test (adjust the path if you installed a different version than 1.6.0_18
home> ~/java32/jre1.6.0_18/bin/java -version java version "1.6.0_18" Java(TM) SE Runtime Environment (build 1.6.0_18-b07) Java HotSpot(TM) Server VM (build 16.0-b13, mixed mode)
That looks cool, the correct Java is available a the new path, running just ‘> java -version’ still gives me the Fedora installed OpenJDK 64 bit version, so I have not broken my base system. Now to start mypodder: Change to the mypodder directory (or wherever you normally run mypodder from) and edit the start_linux script to use the standalone 32bit java instead of the default system java. In my case I copied the existing script to a new one called ‘start_linux64.sh’.
home> cd /media/SANSA\ CLIP/mypodder/ <your path will vary> home> cp -p start_linux.sh start_linux64.sh home> gedit start_linux64.sh <or use nedit, vi, whatever floats your boat>
Modify this so the exlicit path of the 32 bit java executable is used in the command to start mypodder.
- I did not need to mess around with ‘JAVA_HOME’ environment variables etc.. just invoking the correct Java executable was sufficient.
The following worked well for me:
I replaced
java -Djava.library.path=./linux -classpath .:./linux:./linux/swt.jar:./linux/piccolo.jar Core
with
~/java32/jre1.6.0_18/bin/java -Djava.library.path=./linux -classpath .:./linux:./linux/swt.jar:./linux/piccolo.jar Core
And that was it, running on my desktop 10 seconds later
I actually still use this on 32bit Fedora 12 and archlinux, so I left the old start script intact, I only use the alternate script on my 64bit work system.
- I actually have the script on my desktop (it assumes I have mounted the player first) for convenience, so long as you add a ‘cd /media/<devicepath>/mypodder’ line before the java command the script is quite portable.
PS: I did this after wasting hours trying to get mypodder to run under wine32; that was a world of pain and confusion..
I was really hoping that this would work for me. I did everything as above except the java I got from the linked site was jre1.6.0_20. Testing as above resulted in:
~/java32/jre1.6.0_20/bin/java -version
java version “1.6.0_20″
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)
Commented out the script line in the start_linux64.sh and copy/pasted the edit above to the script, only changing the “18″ to “20″. This *does* seem to start myPodder on my 64 bit Ubuntu 9.10 system, but it will not go past the license agreement. It just sits there forever (I’ve let it sit for 1/2 hour)
Any ideas?
I decided to try mypodder again, thanks to your post. I’m using Ubuntu 19.94, so I did an apt-get install of the 32-bit Java (ia32-sun-java6-bin), and then changed the business end of start_linux.sh to
/usr/lib/jvm/ia32-java-6-sun/bin/java -Djava.library.path=./linux -classpath .:./linux:./linux/swt.jar:./linux/piccolo.jar Core
but when I run it I get
Exception in thread “main” java.lang.NoClassDefFoundError: Core
Caused by: java.lang.ClassNotFoundException: Core
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: Core
. Program will exit.
which is strange, because the classpath has ./linux in it, where Core.class lives. I don’t think it’s a permission issue; the JVM only has to be able to read classes and jars, right?
Found the problem. What I downloaded had MSDOS end of line, so java must have been looking for ‘Core^M’ and not finding it.
So, is there a fix?