Function: org-babel-execute:java
org-babel-execute:java is a byte-compiled function defined in
ob-java.el.gz.
Signature
(org-babel-execute:java BODY PARAMS)
Documentation
Execute a java source block with BODY code and PARAMS params.
Source Code
;; Defined in /usr/src/emacs/lisp/org/ob-java.el.gz
(defun org-babel-execute:java (body params)
"Execute a java source block with BODY code and PARAMS params."
(let* (;; allow header overrides
(org-babel-java-compiler
(or (cdr (assq :javac params))
org-babel-java-compiler))
(org-babel-java-command
(or (cdr (assq :java params))
org-babel-java-command))
;; if true, run from babel temp directory
(run-from-temp (not (cdr (assq :dir params))))
;; class and package
(fullclassname (or (cdr (assq :classname params))
(org-babel-java-find-classname body)))
;; just the class name
(classname (car (last (split-string fullclassname "\\."))))
;; just the package name
(packagename (if (string-match-p "\\." fullclassname)
(file-name-base fullclassname)))
;; the base dir that contains the top level package dir
(basedir (file-name-as-directory
(if run-from-temp
(org-babel-temp-directory)
default-directory)))
;; the dir to write the source file
(packagedir (if (and (not run-from-temp) packagename)
(file-name-as-directory
(concat basedir (replace-regexp-in-string "\\." "/" packagename)))
basedir))
;; the filename of the source file
(src-file (concat packagedir classname ".java"))
;; compiler flags
(cmpflag (or (cdr (assq :cmpflag params)) ""))
;; runtime flags
(cmdline (or (cdr (assq :cmdline params)) ""))
;; command line args
(cmdargs (or (cdr (assq :cmdargs params)) ""))
;; the command to compile and run
(cmd (concat org-babel-java-compiler " " cmpflag " "
(org-babel-process-file-name src-file 'noquote)
" && " org-babel-java-command
" -cp " (org-babel-process-file-name basedir 'noquote)
" " cmdline " " (if run-from-temp classname fullclassname)
" " cmdargs))
;; header args for result processing
(result-type (cdr (assq :result-type params)))
(result-params (cdr (assq :result-params params)))
(result-file (and (eq result-type 'value)
(org-babel-temp-file "java-")))
;; the expanded body of the source block
(full-body (org-babel-expand-body:java body params)))
;; created package-name directories if missing
(unless (or (not packagedir) (file-exists-p packagedir))
(make-directory packagedir 'parents))
;; write the source file
(setq full-body (org-babel-java--expand-for-evaluation
full-body run-from-temp result-type result-file))
(with-temp-file src-file (insert full-body))
;; compile, run, process result
(org-babel-reassemble-table
(org-babel-java-evaluate cmd result-type result-params result-file)
(org-babel-pick-name
(cdr (assoc :colname-names params)) (cdr (assoc :colnames params)))
(org-babel-pick-name
(cdr (assoc :rowname-names params)) (cdr (assoc :rownames params))))))