I wrote those examples in an org file so I could test as I wrote them, and then exported it to make it more readable, but the export resulted in source block headers being lost. Here is the same without export:
----
* Changes
- support for functional mode (~:results value~)
- accept variables
- don't require package, class, and main definitions
- write source and result tempfiles to ~org-babel-temporary-directory~, but respects the ~:dir~ header
- work with tramp
* Examples
** Example 1
This outputs "hello." If class and main definitions aren't given the
code block will be wrapped in generic ones.
#+begin_src java :results output silent
System.out.print("hello");
#+end_src
This is exactly equivalent:
#+begin_src java :results output silent
public class Main {
public static void main(String[] args) {
System.out.print("hello");
}
}
#+end_src
** Example 2
This also outputs "hello."
#+begin_src java :results value silent
return "hello";
#+end_src
** Example 3
This generates the class "Example" in the package "org.orgmode" in the
current directory.
#+begin_src java :results output silent :classname org.orgmode.Example :dir .
System.out.print("hello, org-mode");
#+end_src
** Example 4
The "Hey" class defines a static method but no main. C-c C-c on the
"Hey" source block will write "./org/orgmode/Hey.java" and compile it.
The "Main" class calls the "Hey" class. C-c C-c on the "Main" source
block will write "./org/orgmode/Main.java" and compile and run it.
#+begin_src java :results output silent :dir .
package org.orgmode;
public class Hey {
public static String say() {
return "hey";
}
}
#+end_src
#+begin_src java :results output silent :dir .
package org.orgmode;
public class Main {
public static void main(String[] args) {
System.out.print(Hey.say());
}
}
#+end_src
Instead of C-c C-c, we could have added tangle headers and written the
source files out by tangling.
** Example 5
This prints the variable from the header
#+begin_src java :var msg="hello, org-mode" :results output silent
System.out.print(msg);
#+end_src
** Example 6
This prints "hello, org-mode." The table is provided to the method as a list of lists.
#+name: table
| message | hello, org-mode |
#+begin_src java :var tbl=table :results output silent
System.out.print(tbl.get(0).get(1));
#+end_src
** Example 7
This example returns a list.
Note that you're allowed to specify imports without defining the class
or main methods.
#+begin_src java :results value :exports both
import java.util.Arrays;
return Arrays.asList("message", "hello, org-mode");
#+end_src
#+RESULTS:
| message | hello, org-mode |