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
diff --git a/lisp/ob-java.el b/lisp/ob-java.el index fee695bb9..5c98a0417 100644 --- a/lisp/ob-java.el +++ b/lisp/ob-java.el @@ -60,6 +60,7 @@ parameters may be used, like javac -verbose" (cmpflag (or (cdr (assq :cmpflag params)) "")) (cmdline (or (cdr (assq :cmdline params)) "")) (cmdargs (or (cdr (assq :cmdargs params)) "")) + (compile-only (assq :compile-only params)) (full-body (org-babel-expand-body:generic body params))) ;; created package-name directories if missing (unless (or (not packagename) (file-exists-p packagename)) @@ -67,18 +68,19 @@ parameters may be used, like javac -verbose" (with-temp-file src-file (insert full-body)) (org-babel-eval (concat org-babel-java-compiler " " cmpflag " " src-file) "") - (let ((results (org-babel-eval (concat org-babel-java-command - " " cmdline " " classname " " cmdargs) ""))) - (org-babel-reassemble-table - (org-babel-result-cond (cdr (assq :result-params params)) - (org-babel-read results t) - (let ((tmp-file (org-babel-temp-file "c-"))) - (with-temp-file tmp-file (insert results)) - (org-babel-import-elisp-from-file tmp-file))) - (org-babel-pick-name - (cdr (assq :colname-names params)) (cdr (assq :colnames params))) - (org-babel-pick-name - (cdr (assq :rowname-names params)) (cdr (assq :rownames params))))))) + (unless compile-only + (let ((results (org-babel-eval (concat org-babel-java-command + " " cmdline " " classname " " cmdargs) ""))) + (org-babel-reassemble-table + (org-babel-result-cond (cdr (assq :result-params params)) + (org-babel-read results t) + (let ((tmp-file (org-babel-temp-file "c-"))) + (with-temp-file tmp-file (insert results)) + (org-babel-import-elisp-from-file tmp-file))) + (org-babel-pick-name + (cdr (assq :colname-names params)) (cdr (assq :colnames params))) + (org-babel-pick-name + (cdr (assq :rowname-names params)) (cdr (assq :rownames params)))))))) (provide 'ob-java)