How to Create a Web App to Compile and Run Java/C/PHP Code Online?

What you can basically have, according to a MVC pattern applied to a web architecture, is something like this:

  • A web application client-side, which allows the user to insert some code, possibly leveraging Javascript for early syntactic check
  • A server endpoint, receiving the inserted code as input from the client

The sequence of operations could be:

  1. Server-side, the input is transformed into the appropriate structure for the target programming language, e.g. a Java class or a C module.
  2. Possibly, more context is defined (e.g. a classpath).
  3. Then, if the language is compiled, the compiler is invoked (e.g. javac or gcc). This can happen in several ways, e.g. exec in C or Runtime.getRuntime().exec in Java. Otherwise the code can be deployed on a server or some simulators can be run and passed the code.
  4. Subsequently, the code is executed and output is intercepted (e.g. by directioning the console output to a file or just leveraging the target language infrastructure, like in this example). The execution can happen through command line (e.g. java) or via other tools (e.g. curl for running a deployed php code as it was a client browser accessing it)
  5. Last step for the server is to send back the intercepted output to the client in a readable format, e.g. HTML. As an alternative, if you used Java, you could go for Applet, which doesn't change the basic architecture.

However, more in general, the point is that compilers and interpreters are base software. They are not intended for general users, which can easily live with the Operating System only. Therefore, "on line compiling", at the best of my knowledge, is something different from "posting code, letting it execute on a server, and visualizing the answer". Online compiling would mean distributing the responsibility of compiling across the network, which does make sense, but, in my opinion, it is not meant to use for demonstrative purpose (like you are mentioning).


I used domjudge for my company and customized it for my need.

PHP code is very well written. It is very modular and simple to adapt to your requirements.