我创建了一个项目,并将该类命名为与文件名相同。假设我保存了项目并希望运行它。我如何通过emacs完成此操作?我也安装了jdk。
答案 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代码以便将更改反映在服务器上(假设服务器进行动态类加载并且它适用于您的开发环境 - 我已经开发过了很多项目都没有。)