你如何在emacs中运行Java代码?

时间:2013-11-13 12:33:53

标签: java emacs

我创建了一个项目,并将该类命名为与文件名相同。假设我保存了项目并希望运行它。我如何通过emacs完成此操作?我也安装了jdk。

3 个答案:

答案 0 :(得分:3)

我在尝试Java时遗留了一些黑客。

这是一个最简单的程序,由一个文件组成:

(defun java-eval-nofocus ()
  "run current program (that requires no input)"
  (interactive)
  (let* ((source (file-name-nondirectory buffer-file-name))
     (out    (file-name-sans-extension source))
     (class  (concat out ".class")))
    (save-buffer)
    (shell-command (format "rm -f %s && javac %s" class source))
    (if (file-exists-p class)
    (shell-command (format "java %s" out) "*scratch*")
      (progn
    (set (make-local-variable 'compile-command)
         (format "javac %s" source))
    (command-execute 'compile)))))

这是一个蚂蚁控制的项目:

(defun ant-compile ()
  "Traveling up the path, find build.xml file and run compile"
  (interactive)
  (save-buffer)
  (with-temp-buffer
    (while (and (not (file-exists-p "build.xml"))
        (not (equal "/" default-directory)))
      (cd ".."))
    (set (make-local-variable 'compile-command)
     "ant -emacs")
    (call-interactively 'compile)))

您可以在JDEE中找到一些相当于这些的东西 我可以设置它(我不能)。

以下是我的主要绑定:

(define-key java-mode-map [C-f5] 'java-eval-nofocus)
(define-key java-mode-map [f5] 'ant-compile)

答案 1 :(得分:1)

答案 2 :(得分:1)

你必须拥有一些版本的emacs,其中有一些feature to launch separate applications.从那里,你传递command to launch the JVM(例如java MyClass)

如果您正在开发Web应用程序,您的服务器可以能够在更改时动态加载类 - 这取决于许多因素。如果您正在这种类型的环境下进行开发,那么您只需要编译Java代码以便将更改反映在服务器上(假设服务器进行动态类加载并且它适用于您的开发环境 - 我已经开发过了很多项目都没有。)