我做了一个项目并将类命名为与文件名相同。假设我保存了项目并想运行它。我如何通过emacs做到这一点?我也安装了jdk。
问问题
9108 次
3 回答
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)
于 2013-11-13T18:23:41.223 回答
1
于 2013-11-13T12:50:12.300 回答
1
您必须拥有一个具有某些功能的 emacs 版本才能启动单独的应用程序。从那里,您传递命令以启动 JVM(例如 java MyClass)
如果您正在开发 Web 应用程序,您的服务器可能能够在类发生变化时动态加载它们——这取决于许多因素。如果您在这种类型的环境下进行开发,那么您只需要编译 Java 代码即可将更改反映在服务器上(假设服务器进行动态类加载并且它适用于您的开发环境——我已经在许多项目没有)。
于 2013-11-13T12:54:14.280 回答