Hi John,
Thanks for the suggestion and patch. Is the reason for this so that you can
have classes without needing dummy "main" methods?
Did you consider using org-babel-tangle to generate the source files? This
works for me:
Steps:
1. put javatangle.org (below) on your local.
2. create "pkg" directory where javatangle.org is
3. run org-babel-tangle on javatangle.org (this writes two source files to
the pkg dir)
4. run C-c C-c on the top source block (this compiles both source files and
runs main)
----- javatangle.org -----
#+begin_src java :results output :classname pkg/Main :tangle pkg/Main.java
package pkg;
public class Main {
public static void main(String[] args) {
System.out.println(Hey.hey());
}
}
#+end_src
#+begin_src java :results output :classname pkg/Hey :tangle pkg/Hey.java
package pkg;
public class Hey {
public static String hey() {
return "hey";
}
}
#+end_src
On Sun, Sep 27, 2020 at 5:19 PM John Herrlin <[email protected]> wrote:
>
> Hey Ian!
>
> Happy to see you as the maintainer of the ob-java!
>
> I would like to propose a feature to ob-java. The feature allows a
> source code block to write and compile only, without executing.
>
> Here is a common use case for me.
>
> Class without a entry point have an :compile-only header.
>
> #+HEADER: :classname se/my_test_package/Hey
> #+HEADER: :dir src
> #+HEADER: :compile-only t
> #+HEADER: :results none
> #+BEGIN_SRC java
> package se.my_test_package;
>
> public class Hey {
> public static String hey(String name) {
> return "Hey " + name;
> }
> }
> #+END_SRC
>
> The provided diff works for my small use case. What do you think?
>
> --
> Best regards
> John
>
>