Supported Platforms
Windows
Mac OS X
Linux
Other Platforms
Java Versions
Supported Platforms
The Processing Development Environment (PDE) is currently tested on:
- Mac OS X 10.4.11 (PPC and Intel)
- Mac OS X 10.5.3 (Intel)
- Windows XP SP3
- Windows Vista SP1
- Ubuntu Linux (7.10 on i686, 8.04 on x86_64)
Windows XP and Vista
Windows, and to a lesser extent, Linux, are by far the superior platform for running Java applications. It's not because we like Windows (we don't) 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 JDK 1.5 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.
If Processing does not start, try running it from a command prompt with the following:
.\processing.exe --l4j-debugThis will create a launch4j.log file which will describe what's happening during the startup. Then you can post on the discourse section of the site to inquire for help, or the bugs database if you think it's a bug.
It's not possible to use Processing with Windows 98, ME, or 2000. Recent Server editions are not supported, though they should work. 64-bit versions of Vista or XP will likely work but we don't have resources to test and debug for them.
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 management seems to
have a completely arrogant attitude about Java and wants developers to
build their applications using Cocoa, seemingly unaware
of their current marketshare.
For best performance, use Processing with Linux or Windows.
- 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.
- Processing requires OS X 10.4 and later. As of release 0136, we are discontinuing support for Java 1.4. As a result of an unfortunate decision by Apple not to release Java 1.5 for OS X 10.3, Processing will no longer run on OS X 10.3 (Panther).
- The most current release is tested (and supported) on the latest update of Mac OS X 10.4 or 10.5. Earlier versions of 10.4 have trouble with OpenGL and include other nasty bugs.
- We have only done cursory testing with OS X 10.5. Processing releases prior to 0136 will be slower when run on OS X 10.5 because of a switch in how rendering is handled. For 0136 we've added a flag that makes things render the old way.
- As of January 2006, OS X 10.4 is the primary development platform for Processing itself. Because Java on OS X is so problematic compared to other platforms, it's a kind of lowest common denominator for development.
- 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. It's bizarre that they haven't fixed this issue. - 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 will actually be worse than previous versions.
- 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.
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. As of release 0140, this must be a
symlink to a full JDK, not a JRE. Be sure that the symlink is set up
relative to the ‘processing’ shell script
such that ./java/bin/java points to the ‘java’ binary.
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 ~/.processing/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.
As of release 0140, we are no longer using Jikes, so these problems are no longer present.
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.5. 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 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.
- Starting in release 0136, Java 1.5 is required to run the Processing Development Environment and projects created with Processing.
- It is not yet 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 help us fix things. More information cane be found here.
- We will not be moving to Java 1.6 anytime soon because of Apple's lack of support for Java, and half our users are on Macs. (Releasing Java 1.6 two years later and only for 64-bit Intel machines running OS X 10.5.2 does not count as support). If this bothers you a fraction of as much as it annoys us, please complain to Apple.
- 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.