Supported Platforms
Windows
Mac OS X
Linux
Other Platforms
Java Versions
Supported Platforms
The Processing Development Environment (PDE) is "officially" tested with:
- Mac OS X 10.4 (PPC and Intel)
- Windows XP (and a little bit o' Vista)
- Ubuntu Linux (whatever is most recent)
Windows
Windows is by far the superior platform for running Java
applications. It's not because we like Windows the best but that's
just how it is.
The release is split into versions with and without Java. The non-Java
version is only recommended for people who know what they're
doing and have Java 1.4 installed. If you have trouble getting
Processing to run properly, one of the first things you should
try is downloading the version that includes Java, rather than
the one without.
Windows 95/98/ME is a piece of crap, but since lots of people (are
often forced to) use it, we'll do our best to support it. Windows 95 is
not supported.
Releases seem to often have trouble with 98/ME, so if possible, we
strongly recommend using Windows 2000 or XP. We won't be
testing on 95/98/ME or supporting it any more than we absolutely must.
Mac OS X
Java on Mac OS X has always dragged behind other platforms.
Java performance on the Intel Macs is improved significantly over PowerPC
machines, on which Java ran almost half the speed.
Unfortunately Apple seems to
have a completely arrogant attitude about Java and wants everyone to
code their applications using things like Cocoa, seemingly unaware
of their current marketshare.
- Like all applications that also support the Intel Macs, Processing requires Mac OS X 10.3.9 or later. Unfortunately, we cannot support any earlier releases. OS X 10.2 and earlier are problematic and 10.3 should be updated to 10.3.9 anyways, if nothing else to take advantage of security updates.
- If you're using an earlier version of OS X than 10.3.9, Processing will not run and you may get an error like this one in your Console.app: dyld: Processing 0108/Processing 0108.app/Contents/MacOS/JavaApplicationStub can't open library: /usr/lib/libgcc_s.1.dylib (No such file or directory, errno = 2).
- The most current release is tested (and supported) only on the latest update of Mac OS X 10.4.x. Earlier versions of 10.4 have trouble with OpenGL and include other nasty bugs.
- We will only fix bugs specific to 10.3.9 if there's a specific issue raised and it can be done without too much trouble. We still intend to support 10.3.9 for a while (but not earlier 10.3.x releases).
- If you're having trouble with Mac OS X, check the console. It's found in Applications → Utilities → Console.app. Information posted there may tell you what the problem is, or provide an error message that someone (perhaps from the discourse section of the Processing site) can help with.
- As of January 2006, OS X 10.4 will also be the primary development platform instead of Windows XP.
- Using Java 1.5 (J2SE 5.0) is not recommended, but is perhaps a losing battle.
- When using OS X 10.4, it's common to get errors in the console that read something like:
2006-03-30 15:27:47.118 java[1170] CFLog (0): CFMessagePort: bootstrap_register(): failed 1103 (0x44f), port = 0x11303, name = 'java.ServiceProvider'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2006-03-30 15:27:47.119 java[1170] CFLog (99): CFMessagePortCreateLocal(): failed to name Mach port (java.ServiceProvider)
This is an Apple bug that shows up any time that more than one instance of Java is running. I'm baffled that they haven't fixed this issue. - Mac OS X 10.0, 10.1, and 10.2 won't run the Processing environment, but should run applets that have been created with it. Make sure that Java is as up-to-date as possible (via Software Update).
- Mac OS 9 was a big headache, and we badly wanted to support it (since many people still use it), but discontinued support for lack of time. As of revision 85, applets exported from Processing won't work on Mac OS 9 either, but that should return with a future release.
- With the release of the affordable Mac Mini for Intel, we were able to purchase one of these cute little fellers and start testing Processing releases with it. The machine arrived exactly 24 hours from when Stever left the stage, and we're working hard to make sure that Processing for OS X on Intel is available way before Adobe has a chance to charge you another $1200 for the Intel-native Creative Suite 3.
- Performance on the Intel Macs is significantly better than earlier PowerPC Macs. The only exception is that the Mac Mini and MacBook (unlike its predecessor the iBook) use an integrated graphics chipset, so OpenGL performance may not see as much of a boost.
- While older releases will run on the Mactel machines, starting with revision 0104, the Processing application itself is a Universal Binary. Release 0110 is the first to support the OPENGL renderer on the Intel Macs. Release 0111 adds serial support with a Universal version of the RXTX library.
- Java, thankfully, is already native on the new Intel Macs, so the improvement that comes from the faster bus/processor is a big help. And the ways in which the Intel chips aren't faster than PPC (Altivec, heavy media stuff) should have little effect on Java/Processing (yes, contradictory, since we're doing graphics things, right? but I don't have the impression that Java was optimized heavily to use Altivec and media hooey that's lost on the Mactels).
- The ever-popular Sonia library needs an update for the new version of jSyn that is a Universal Binary. This can be found on the jSyn site. The default Sonia download includes the PowerPC-only version of jSyn.
- The serial library included with releases 0111 and later is now a Universal Binary (Bug 311). You may need to re-run macosx_setup.command script to get serial working properly on your machine. After running the setup script, shutdown and restart your machine. For more information, see the serial section of the FAQ.
Linux
For the Linux version, you guys can support yourselves. If you're
enough of a hacker weenie to get a linux box set up, you oughta know
what's going on. For lack of time, we won't be testing extensively
under linux, but would be really happy to hear about any bugs or
issues you might run into. Actually, we don't get happy that you're
having issues, but if you're going to have issues, we're happy that
you tell us about them, so we can fix them.
The Processing application is just a shell script, you can use this
as a guide to getting Processing to run with your specific configuration,
because who knows what sort of setup you have.
Replacing (or making a symlink to) the
contents of the ‘java’ folder will let you tie in a
preferred Java VM for your machine.
Note that the GNU Classpath, GCJ, GIJ combination will not work with
Processing. You'll need a regular Java release downloaded from Sun.
OpenJDK and IcedTea are also unlikely to work, however we'll update
this as those projects progress.
If you get Processing to run properly, the Sketch → Show Sketch Folder command may not be available. Processing will attempt to find kde-open and gnome-open, and if neither is available, the menu item will be dimmed. To fix this, you must set a launcher for your platform. Add a line to preferences.txt that specifies its location:
launcher.linux = /path/to/launcher_app
Getting Processing to run on Linux can be tricky, mostly because of Jikes.
Some information on getting it to work can be found
here under the Linux section. Similar to
the Java folder, you can symlink a proper jikes in place of the distributed
version and you should be all set. However make sure that you're using
Jikes 1.22, otherwise things may not work properly.
If anyone out there knows how to properly build a version of Jikes that's
compatible across all (or at least a wide range of) distros, please
let us know. We're not Linux gurus so we don't know all the tricks.
Using Fedora Core 4, I had to install compat-libstdc++-33 and xorg-x11-deprecated-libs in order to get things to run properly with the current distribution. Let's hear it for library dependencies!
Other Platforms
Because Processing is written in Java, it should run on any platform that supports Java 1.4. If you'd like to get it running on BSD, Irix, AmigaOS, BeOS... whatever, do the following:
- Download the Linux version, and replace the “java” folder and jikes application with versions that support your platform. The files can by symbolic links to your Java Runtime installation (note how the folder hierarchy works to make sure you're linking the right thing) or Jikes executable.
- Next, mess with the shell script if necessary to get things up and running.
- If you have success, share the details for others.
Java Versions
There are several versions of Java, each with a different story. The versions from 1.2 to 1.4 are also referred to with names like "Java 2 SDK 1.2" or "J2SE 1.4" (Java 2 Standard Edition 1.4). J2SE is different from the trimmed-down J2ME ("Micro Edition") which runs on mobile devices, and J2EE ("Enterprise Edition") which contains more "enterprise" related bloat. In a moment of further anti-user marketing genius, Sun recently decided to call the next release "Java 5.0" when promoting, but it's Java 1.5 to developers. Proving that they could outdo themselves in idiocy, the release that followed is called JDK 6.
- Java 1.4 (J2SE 1.4) — As of release 0126, we are no longer supporting versions of Java prior to Java 1.4. We decided that it was better to focus on the future of the project, rather than wasting our time supporting a narrowing user base of people with ancient versions of Java installed. We very much wanted to keep 1.1 support, but we just don't have enough people working on the project to do that.
If you get an UnsupportedClassVersionError when using a library or other Java code, that means the code was compiled for a later version of Java than is supported by Processing. A message such asjava.lang.UnsupportedClassVersionError: (Unsupported major.minor version 49.0)
means that the code was compiled for Java 1.5. - Java 1.5 (Java SE 5.0) — the previous version of Java. We don't support it and recommend that you avoid using it, as we don't test with it and it appears that it may be
the slowest (certainly most bloated) release of Java yetno longer true, outdone by Java 1.6. If you have Java 1.5 installed but are using the Processing download that includes Java, you may be surprised to see that things run more slowly when run in a browser than when run from inside Processing itself.
It is also not possible to use any of the new syntax introduced in Java 1.5 within Processing, even if you have 1.5 installed (the preprocessor and compiler used by Processing don't understand the 1.5 syntax). This includes the enhanced "for" loop, templates, generics, enums, varargs, and lots of other crap that Sun added because they felt that the older syntax was too simple and usable. A couple of these features are very useful (the for loop, some aspects of generics) so if you would like to help get things running with 1.5 syntax, please see this bug.
On the Mac, Java 1.5 is only available to users of Mac OS X 10.4. Until people stop using 10.3.x, we probably won't be moving entirely to Java 1.5. Apple's Java support is irritating and wrong-headed. If this bothers you a fraction of as much as it annoys us, please complain to Apple. To use Java 1.5 (or later) with Processing, you can use the core libraries with your favorite IDE. See the FAQ for details. - Java 1.6 (JDK 6) — We don't plan to support 1.6 any time soon. We'll think about 1.6 support once we get past 1.5 support. Part of our lack of interest in JDK 6 is that a large portion of our audience is on Mac OS X, and it appears that two years later, once Apple gets around to releasing this version of Java, they'll only be making it available to users of Mac OS X 10.5 (also not yet released). Again, if you have a problem with their Java support, please complain to Apple.