FreeMind on Linux
InstallationJava installationFreeMind is a Java program, hence you need Java to make it work. There is the "Java runtime engine" (JRE or J2RE) required to run (use, start) FreeMind, and there is the "Java Development Kit" (JDK or J2DK) if you want to compile FreeMind. If you don't know what compile means, then you need only the JRE. In the following lines, I will concentrate on making FreeMind run and the JRE installation. From the distribution's RPM packageIt's probably the easiest way:
It may be that the package for Java is already installed or doesn't exist, but then the software manager will tell you. In the first case, you can install FreeMind ; in the 2nd case, you can try the next section. From Sun's RPM packageOn Fedora Core 2 and Mandrake, it looks like there is no 'native' Java package, hence installing the one from Sun seems to be the standard procedure:
$ sh j2re-1_4_2_06-linux-i586-rpm.bin
# rpm -Uvh j2re-1_4_2_06-linux-i586.rpm You're done (there are more detailed Instructions on the Sun page)! Some additional notes:
Further RPM alternatives
On a Debian systemAs Java isn't really free or open, there is no official Debian package for it. The procedure is hence to install java-package from the unstable contrib section, e.g. with # apt-get install java-package Read the instructions delivered with the package, and create your own little Java package(s). Download the Java Runtime Environment (JRE) from Sun (Linux self-extracting file), called something like j2re-1_4_2_07-linux-i586.bin or jre-1_5_0_02-linux-i586.bin. Use the command from the java-package called make-jpkg along with fakeroot as so: # fakeroot make-jpkg sun-j2re1.4.bin noting that the filename depends on your version. When you have this, you can # dpkg -i sun-j2re1.4.deb
On a Gentoo systemTo ensure you are up-to-date in portage: emerge sync (or emerge-websync) To make sure you know what is going to install, use the --ask flag to emerge. Answer `yes' if you want to emerge dependancies: emerge --ask app-misc/freemind FreeMind installationWe come now to the interesting part, the installation of FreeMind itself. All the files we speak about here, are to be downloaded from the Files section on the FreeMind Sourceforge Project Page. Don't forget to read the release notes as they also might contain important information.
On an RPM systemDownload the correct RPM file from the Files section, choose the one which fits best your system:
(the version might change, but the release postfix should remain) Then, as root, install the package: # rpm -Uvh freemind-...noarch.rpm Done! If packages are missing, you can install the missing packages from http://jpackage.org/. Just search for the package names.
On a Debian systemFrom the Files section, download the .deb file called something like freemind_0.7.1-3_all.deb and install it as root: # dpkg -i freemind_0.7.1-3_all.deb That was the hard way. The comfortable way is to add the following lines to your /etc/apt/sources.list: deb http://eric.lavar.de/comp/linux/debian/ unstable/ deb-src http://eric.lavar.de/comp/linux/debian/ unstable/
Or since FreeMind has become an official contrib Debian package: deb http://ftp.XX.debian.org/debian unstable main contrib non-free deb-src http://ftp.XX.debian.org/debian unstable main contrib non-free
and call as root the two following commands: # apt-get update # apt-get install freemind (it's more comfortable because, each time you call "apt-get upgrade", you'll get automatically the new freemind package)
Starting FreeMindInstalled from RPM or DEB packageJust type "freemind" in a console or an Alt+F2 command line, you're normally done. There should also be a menu entry under "Applications" in KDE and GNOME (under Debian, in any window manager). Installed from ZIP fileType the full path of the installation directory in a console or an Alt+F2 command line to start freemind.sh, e.g.: $ /some/directory/path/freemind.sh You will need to create your own menu entry if you need it.
Frequently and less frequently Asked QuestionsI can't paste branches copied from FreeMind into other applicationsTry to use the middle mouse button to paste the content copied from FreeMind. Under KDE, you can use klipper and set the option "Synchronize contents of the clipboard and the selection", so that you can also use Ctrl+V or Shift+Ins to paste. I want to add an icon for my Link to FreeMind on my Desktop, is there one?Not in the ZIP file, you'll need to download and unpack the source file, there you'll find a file freemind/images/FreeMindWindowIcon.png that you can copy somewhere and use as desktop icone. When starting FreeMind, it says "java: command not found". What's wrong?It's a problem from Fedora Core, Mandrake and the Java Sun RPM, which neither add the java command to the PATH nore defines properly the variable JAVA_HOME. Add the following two lines to one of the startup scripts (/etc/profile and/or /etc/bash.bashrc for all users, or $HOME/.profile and/or $HOME/.bashrc only for you): export PATH=$PATH:/usr/java/j2re1.4.2_04/bin export JAVA_HOME=/usr/java/j2re1.4.2_04 (the part in italic depends on your installation)
Why do I get a "No print service found" whenever I attempt to print?At least up to version 1.4, the java runtime under Linux is using the BSD printing system (also known as the lp commands, or old lp). Most modern distributions offer the CUPS printing system, which needs a compatibility layer to work with Java:
Install this package and you should be able to print from FreeMind. If CUPS is not installed on your system, it is easier to install the traditional lpr/lpd system. On Debian, the package is just lpr, apt-get install lpr should be enough.
I get an error java.lang.NoClassDefFoundError or java.lang.NullPointerException when starting FreeMindWhen trying to start FreeMind from a console, you get the following error messages and FreeMind doesn't start: ./lib/freemind.jar java.lang.NoClassDefFoundError: javax/swing/JFrame at java.lang.ClassLoader.defineClass0 (ClassLoader.java) at java.lang.ClassLoader.defineClass (ClassLoader.java:179) at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:33) at kaffe.lang.AppClassLoader$JarSource.findClass (AppClassLoader.java:143) at kaffe.lang.AppClassLoader.findClass (AppClassLoader.java:291) at java.lang.ClassLoader.loadClass (ClassLoader.java:142) at java.lang.ClassLoader.loadClass (ClassLoader.java:121) at kaffe.jar.ExecJarName.main (ExecJarName.java:55) at kaffe.jar.ExecJar.main (ExecJar.java:75) or update UI not overwritten in class: javax.swing.JLayeredPane[0,0,0x0,invalid,translucent,alignmentX=0.0,alignmentY=0.0,border=, maximumSize=java.awt.Dimension[width=2147483647,height=2147483647],minimumSize=java.awt.Dimension [width=0,height=0],preferredSize=java.awt.Dimension[width=0,height=0]] [Freemind-Developer-Internal-Warning (do not write a bug report, please)]: Tried to get view without being able to get map module. Exception during event dispatch: java.lang.NullPointerException at javax.swing.plaf.basic.BasicComboBoxEditor.setItem(java.lang.Object) (/usr/lib/libgcj.so.6.0.0) This is because you use kaffe (the same applies to libgcj, sablevm and a few others), which doesn't offer all features of Sun's Java. Blackdown's Java do es as well work, I would have doubts on any other implementation (beside perhaps IBM's one). So, remove this Java version and install a version from Sun or Blackdown.
While installing a FreeMind package, it complains Java isn't installed, though I've installed it and Java programs do workYou've probably installed Java manually, and not from an RPM resp. DEB package. This means that the FreeMind RPM resp. DEB package can't know that Java is installed. Three solutions (from better to worse):
# rpm -Uvh -nodeps freemind....noarch.rpm
While installing a FreeMind RPM package, it complains Java isn't installed, though I've installed it from an RPM packageYou've probably installed the JDK package from Sun, which provides also a JRE but doesn't say it. Your best chance is to install the dummy package j2sdk-provides-j2re-1.4.2-2.noarch.rpm. The source package is available as well.
How can I make FreeMind use a specific Java Virtual Machine?If you've installed FreeMind from a package, you can make it use a different Java virtual machines than other programs by adding lines similar to the 2 following ones to /etc/freemind/freemindrc, for all users, or to $HOME/.freemind/freemindrc, for you, so that only FreeMind is impacted (and no other program): export PATH=$PATH:/usr/java/j2re1.4.2_04/bin export JAVA_HOME=/usr/java/j2re1.4.2_04 (the part in italic depends on your installation)
Why doesn't the rebuild of the SRPM work under Fedora Core 2During rebuild of the RPM, lines similar to the following do appear and the build fails: compile: [mkdir] Created dir: /usr/src/redhat/BUILD/freemind-0.7.1/bin/classes [javac] Compiling 92 source files to /usr/src/redhat/BUILD/freemind-0.7.1/bin/classes [javac] /usr/src/redhat/BUILD/freemind-0.7.1/freemind/freemind/modes/MindMapLinkRegistry.java:38: error: '{' expected. [javac] }; [javac] ^ [javac] /usr/src/redhat/BUILD/freemind-0.7.1/freemind/freemind/modes/MindMapLinkRegistry.java:40: error: Public interface `freemind.modes.ID_Blank' must be defined in a file called `ID_Blank.java'. [javac] public interface ID_Blank extends ID_BasicState {}; [javac] ^ The ant package delivered with Fedora Core 2 seems to be broken (version is 1.5.2, but my ant version is 1.5.1 and it works). Installing ant (and dependencies) from the JPackage Project seems to solve the problem. Under Fedora Core 3, Java complains in libawt.so about missing libXp.so.6The exact error message is: Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/jre/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory In this case install the package xorg-x11-deprecated-libs-6.8.1-12.i386.rpm, e.g. using yum, this should solve the problem. TroubleshootingMost people seem to think that, because you're relatively knowledgeable, they can tell you that something doesn't work, and you will be able to find out the solution, just like this! Well, that's not exactly like this: first, I need to understand what the problem exactly is, and then I can try to solve it, especially if I've already seen and solved the problem. Think about your mechanic at the garage, if you give him a call and tell him "my car doesn't start" or "something is wrong with my car", would you expect him to tell you right away "Oh, yes, that's the plugs!". Most probably, he will ask to come by. Well, that's exactly the same here, I can't ask you to come by, but if you want good help, you'll need to give good information. It's easier than you might thought, just do the following steps, that should give us a good start:
On an RPM based system: DEBUG=1 freemind (quit freemind) /usr/bin/java -version rpm -qa | grep -i j rpm -qa | grep freemind env | grep -i j On a Debian based system DEBUG=1 freemind (quit freemind) /usr/bin/java -version dpkg -l \*j\* dpkg -l freemind\* env | grep -i j
The result should look somewhat like this (error messages are OK, I like error messages!): alice@wonderland:~> DEBUG=1 freemind DEBUG: Freemind parameters are . DEBUG: Using $PATH to find java virtual machine. DEBUG: Using '/usr/bin/java' as java virtual machine... DEBUG: Freemind Directory is '/usr/share/freemind'. Looking for user properties: /home/ericl/.freemind/user.properties User properties not found. It will be automatically created. Done. Default (System) Look & Feel: javax.swing.plaf.metal.MetalLookAndFeel [Freemind-Developer-Internal-Warning (do not write a bug report, please)]: Tried to get view without being able to get map module. alice@wonderland:~> /usr/bin/java -version java version "1.4.2-rc1" Java(TM) 2 Runtime Environment, Standard Edition (build Blackdown-1.4.2-rc1) Java HotSpot(TM) Client VM (build Blackdown-1.4.2-rc1, mixed mode) alice@wonderland:~> rpm -qa | grep -i j eject-2.0.13-26 joystick-2002.10.30-38 libjpeg-6.2.0-530 joe-2.9.8-179 jfsutils-1.1.1-25 jpilot-devel-0.99.6-0.pm.1 jpeg-6b-530 jhead-2.0-2 taskjuggler-1.4.2-10 j2sdk-provides-j2re-1.4.2-2 libjasper-1.600.0-75 jpilot-0.99.6-0.pm.1 jakarta-ant-1.5.1-37 java2-1.4.2-0.pm.0 java2-jre-1.4.2-0.pm.0 mjpegtools-1.6.2-1 alice@wonderland:~> rpm -q freemind freemind-0.7.1-6 alice@wonderland:~> env | grep -i j JRE_HOME=/usr/lib/java/jre PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:[etc...] JAVA_BINDIR=/usr/lib/java/bin JAVA_HOME=/usr/lib/java SDK_HOME=/usr/lib/java JDK_HOME=/usr/lib/java JAVA_ROOT=/usr/lib/java alice@wonderland:~>
|