emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ob-java compile only


From: ian martins
Subject: Re: ob-java compile only
Date: Sun, 27 Sep 2020 21:53:38 -0400

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 <jherrlin@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

[Prev in Thread] Current Thread [Next in Thread]