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 <jherr...@gmail.com> 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
>
>

Reply via email to