Java is a general purpose programming language which is ideal for web applications as well as more demanding uses such as credit card authorization and web services. It is similar to PHP in this sense, but it goes beyond PHP's capabilities to allow things like multithreaded applications, low-level network communication, remote procedure calls, in-memory data structures, complex GUIs, high performance calculations, mobile device capability, and full-fledged object-oriented programming. In many ways, it is the ideal complement to FileMaker, which lacks the capability to interact directly with external applications.
Here are some ways that these FileMaker and Java can be used together:
Web publishing: Using the FileMaker JDBC driver (either the one that comes with FileMaker or our open source FileMaker JDBC driver which is available at https://woof.dev.java.net), you can utilize the huge universe of Java web publishing tools and technology to web-enable hosted FileMaker solutions. This includes Java servlets, JSP (Java Servlet Pages), Hibernate, JSF (Java Server Faces), Struts, Spring, J2EE, EJB - you get the picture. Our personal favorite tool for web-enabling FileMaker is Apple's WebObjects product, which is included with OS X Server, so hosting is a snap. We've written an open source adaptor called WooF (WebObjects On FileMaker) which can be downloaded from https://woof.dev.java.net
Another useful way to leverage Java from FileMaker is by creating a Java server application that performs tasks on behalf of FileMaker. For instance, we were contacted by a FileMaker developer who needed to integrate his solution with a custom telephony application that had a Java programming interface. We created a Java service that ran on their network which would accept incoming HTTP requests from FileMaker, read the contents of the URL to gather the necessary parameters, pass the request to the telephony application, and then respond back with a FileMaker XML document that could be imported into FileMaker to see the result of the operation. The net result was a seamless integration between their FileMaker call center application and their phone system.
A third approach is through Java plugins. 360Works has created a C++ framework, using JNI (Java Native Interface), which allows FileMaker plugins to be written using Java. This is the ideal way to tap into Java's full power and scalability from FileMaker Pro, because it lets you as the programmer make direct calls to Java code straight from the FileMaker calculation engine.