Installation (0.8.0)

FreeMind 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).

Once Java has been installed, only then does it make sense to install FreeMind. You can use packages (.deb or .rpm), which is a bit more work to setup but much easier to update, or you can use the more simple installation from a ZIP file (as described in the UN*X section).

The Debian installation

This description should be valid for any Debian based distribution, in particular (K)ubuntu.

Note

FreeMind 0.8.0 is not part of the Debian repository, although FreeMind 0.7.1 is, because of a lot of additional dependencies, and some license issues. For all the gory details, have a look at [1] from the Debian Wiki. We're working on it, but it will take time and won't happen before release of FreeMind 0.9.0.

Install Java the Debian way

Most easiest way

Make sure that the Java 5 JRE under Debian resp. Java 5 JRE under Ubuntu (FreeMind 0.8.0 doesn't support Java 6) is installed, using e.g. aptitude install sun-java5-jre (for Sarge, you will need to add first the backport repositories).

You can make Java 5 the default JRE by using the command update-java-alternatives -s java-1.5.0-sun, but you don't need to.

For Debian versions older than Sarge, or if you need Java 1.4

As Java isn't really free or open, there was no official Debian package for it.
The procedure is hence to install java-package from the contrib section, e.g. as root with:

# apt-get install java-package

Read the instructions delivered with the package, and create your own little Java package(s).

noting that the filename depends on your version. When you have this, you can install the package as root:

# dpkg -i sun-j2re1.4.deb

Note

The package sun-j2re1.4debian is no longer needed since Sarge has been released.

Installing FreeMind under Debian

You can always download the required .deb files from the Files section and install them by hand, using dpkg or whatever, but the comfortable way is to add the following lines to your /etc/apt/sources.list:

you need to replace <version> by either unstable or experimental: I use unstable for software for which I'm pretty sure it could make it into the official Debian repository, experimental for the rest. Currently, unstable contains FreeMind 0.8.0 and dependencies, experimental contains betas of 0.9.0 (and dependencies).

(it's more comfortable because, each time you call "apt-get upgrade",
you'll get automatically the new freemind package)

Some additional notes:

with the repository method, you can get as well the sources for the .deb package using "apt-get source freemind[...]".

of course, you're not obliged to install the different plugins.

if you want to use the 'help' plugin, you'll need to download JavaHelp from Sun's Java site and install the jar file as /usr/local/share/java/jhall.jar.

the 2nd line is only required if you're using "sarge" and want to install freemind-plugins-svg (Batik) respectively freemind-plugins-time (JCalendar). For this command to work, you need of course to make sure that the proper repositories have been entered in /etc/apt/sources.list, like in:

Easiest method (tested under Gutsy Gibbon)

This is how to install the most-recently-packaged version of FreeMind.

As Freemind should be in the multiverse repositories, you should be able to open a terminal and use the following command line:

<tt>sudo apt-get install freemind

Once installed, you can run it from the command line with the command:

freemind

Or you can also create an icon on the panel by right clicking the panel, clicking Add to Panel..., selecting the Custom Application Launcher and entering in the command (and name) as freemind

Should the above not work, then use the following to manually add the necessary repositories and software to your computer.
Start the Synaptic Package Manager (under the System menu), and then do the following:

Add the following repositories using the Menu Settings ⇒ Repositories:

Old instructions

Installation on Ubuntu requires two steps. Install a Java runtime environment, then install FreeMind. Newer versions of Ubuntu (since 6.10?) install Java by default. So chances are that you can skip most of the following instructions.
You might want to check, if Java is installed and what version is active. Open a Terminal and type

Java 1.4 or higher should be fine. See also Ubuntu's community documentation on Java.

Install Java Manually

These instructions (and these notes) are also known to work on Ubuntu 6.10 (EdgyEft). See the Talk Page.

I got my hand on a Kubuntu 5.10 installation, and am now able to give some hints about the specificas of the (K)Ubuntu installation:

you will first need to add the multiverse and universe repositories to your installation, there are plenty of places which explain how to do this.

then, if you're happy with Blackdown's Java 1.4, you don't need to create your own Java package and can install j2re1.4 from the multiverse repository.

sadly, libbatik-java and libjgoodies-forms-java don't seem to be part of any repository; so, you should add the Debian repository as described in the above notes, but be careful to not break your installation with too many pure Debian packages. I personally added the following lines to the file /etc/apt/preferences:

Package: *
Pin: release o=Debian
Pin-Priority: 200

You milleage may vary but if this doesn't work, consider looking at this link.

Install FreeMind Manually

All the above required packages can be installed more easily within Kubuntu 6.10, even without installing a new java RE. I used the previous installed sun java 6 jdk (Freemind 0.8 gives a error message at start, that it might not run correctly, but it does afterwards). Notice that FreeMind 0.8.0 doesn't support Java 6 (FreeMind 0.9.0 will) and issues have been reported; use apt-get install sun-java5-jre if you want to be sure.

That was it. Last thing I did was to create a new launcher on my desktop that called "freemind". I dragged the launcher to the task bar where a single click launches the application. It seems to work well. I didn't bother installing the help .deb because the dependencies reported by gdebi-gtk were too complicated for me to resolve.

Good luck! I hope your installation works as well as mine.

The RPM installation

Starting with version 0.8.0 of FreeMind, I've started to orient my packaging work towards JPackage compatibility, so that the same packages should work for all distributions with JPackage's packages, especially SuSE 9.x and 10.x, Mandrake/Mandriva 10.x, as well as Fedora Core.

Attempting to install the SVG plugin necessary for exporting images is a problem as the Fedora 8 Development repository is, as of 12-Feb-08, the only place I've found with the 64-bit libbatik needed by SVG, and then only version 1.7. The 0.8.1 FreeMind SVG plugin claims to want < 1.7. Installing 0.8.0 seems to work fine even with Batik 1.7. Upgrading everything except the SVG plugin seems to work, as well.

Using either Package Manager, search for 'freemind' and install what you see and like (at this stage, FreeMind is installed and kind of works using IcedTea 1.7, we now assume that you want FreeMind to really properly work...).

Download the JDK (not the JRE!) RPM of Java 1.5 or 6 from Sun's website, install it, then install the corresponding java-1.5.0-sun-compat or java-1.6.0-sun-compat package.

in the mean time, JavaHelp2 has been put under GPL by Sun and can be packaged and distributed in binary form, and there is such a package coming from JPackage, to be found on a JPackage mirror. Still, the state of this package is a bit unclear, e.g. I'm not sure it's part of a repository.

It sounds easy but actually the first step can be a bit tricky: you first need to setup apt4rpm, as described following the links given in this Jpackage Repository page. The good news is that always more distribution are coming standard with apt on board (if you are able to call apt-get as root, you already have it).

Add the JPackage repository to your /etc/apt/sources.list file as described in the same above page. Add also the two following lines (the 2nd one is optional, for sources) to the same file:

Before doing anything though, check to see if a usable Java is already on the system. Any Solaris (version 9 or newer) has one, for example.

Install FreeMind on UN*X

straight-forward installation method

Download the file called something like freemind-bin-max-0_8_0.zip (or freemind-bin-0_8_0.zip if you don't need the plugins), create somewhere a sub-directory and unpack there the file (as normal user or root, depending where you created the sub-directory):

$ unzip .../freemind-bin-max-0_8_0.zip
$ chmod +x freemind.sh

You're done, on any system where /bin/sh is a POSIX-compliant shell. That's true on most Linux systems, but not on Solaris. On Solaris, edit the first line of freemind.sh and change /bin/sh to /bin/bash. Now you're done.

NB: If you want to use beta 0.9: There are zip-Files available for 0.9, too.

more subtle installation method

Considering you're installing FreeMind locally, you should get root and do the following:

This will copy the contents of the zip file to /usr/local/share/freemind and create a symbolic link to the FreeMind script in the /usr/local/bin directory.

The link to the script will only work if you unzip FreeMind in a directory for which freemind.sh is searching. You can however install FreeMind in any directory (e.g. in /opt/FreeMind) if you set $FREEMIND_BASE_DIR in /etc/freemind/freemind.rc resp. ~/.freemind/freemindrc like this:

# path to the installation directory of FreeMind
FREEMIND_BASE_DIR="/opt/FreeMind"

Starting FreeMind

Installed from RPM or DEB package

Just 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 file

You'll need to use a console, or the Alt+F2, or create your own menu entry, using one of the following commands:

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:

Under SuSE 8.2, the package required is called cups-client

Under Debian, it's called cupsys-bsd. Sun's Java 6 (package sun-java6) needs the package libcupsys2. I addition to this you got to have a ServerName line in /etc/cups/client.conf.

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.

Sun's Java 1.5 supports CUPS out of the box. If, however, printing still doesn't work it may be because the CUPS printer names contain '-' characters. There's a Java bug that prevents this from working properly [4], and it doesn't seem fully fixed yet (build 1.5.0_06-b05). Work-arounds are:

Rename printers, e.g. from "my-printer" to "myprinter".

Network printer: Add a local CUPS network printer with a simple name without '-'s in it and use the CUPS URI reported by lpstat -v for the printer you want.

After executing "$ls -l /usr/lib/libcups.so" if there exists a link as "/usr/lib/libcups.so -> libcups.so.2" , try with removing the link by hand.

I get an error java.lang.NoClassDefFoundError or java.lang.NullPointerException when starting FreeMind

When 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.

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):

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.

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.

FreeMind seems broken and I have the Gtk Look&Feel

We already had quite a lot of issues with the Gtk Look&Feel, sometimes in aspects nobody would have thought relevant to the Look&Feel (e.g. hangs on file system access). Hence we strongly recommend to change your Look&Feel to something else before even trying to pin down the issue.

You can change it in the menu Tools → Preferences... → Appareance → Look and Feel.
Should the problem be such that you can't even start the preferences menu (or FreeMind as a whole), edit the file ~/.freemind/user.properties to uncomment and modify the lookandfeel parameter, as in:

lookandfeel = metal

Instead of metal, other valid values are nothing (for no Look&Feel at all), default (the... default one), windows or motif; mainly a matter of taste.

Note

if the modification of ~/.freemind/user.properties doesn't seem to change anything, remove the lookandfeel parameter from the file ~/.freemind/auto.properties

When resizing the FreeMind window, the inner field doesn't resize properly (or other GUI strangeness)

If you're using a 3D desktop (like Compiz or Beryl), that's most probably the reason for your issue. We don't have a fix yet and we even don't know if it's a FreeMind, a Java or a Compiz/Beryl issue. Hints are welcome. (This also happens with ratpoison and awesome.)

Hint:

Beryl, Kubuntu-Feisty, sun-java6-jre: problems with resizing? This works for me:

open FreeMind on Beryl Window Manager

set Kwin (KDE Window manager) as actual Window manager

select back Beryl Window manager - resizing works now!

This problem can be circumvented at least partially by editing the $HOME/.freemind/auto.properties:

Set the appwindow_height and appwindow_width to as high values as possible, so that you don't have to resize at all. If all toolbar icons fit to the screen, you're on the clear :).

Another hint: setting the AWT_TOOLKIT=MToolkit environment variable seems to solve some of the problems. I had the problem that in compiz-fusion the freemind window appeared undecorated and was unmanageable (couldn't be moved, resized, etc.). Setting this environment variable before running freemind solves this problem. I found the solution here. **Addition: This fix (also) works for awesome 2.3, in both tiling and floating modes.

On Awesome (and probably other tiling window managers [5]) adding AWT_TOOLKIT=MToolkit can fix some of the UI issues, but at the cost of causing Freemind to semi-randomly stop responding to keyboard events, usually after interacting with a dialog. This appears to be a bug in the JRE that affects a variety of applications. If you run

wmname LG3D

before launching, it solves both problems without the environmental variable (if it is set, be sure to unset it). I have the window manager run this on startup and it seems to make everything happy.

Troubleshooting

Most 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: