Emacs开发Java之安装

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

Emacs开发Java

前言

笔者把多年UBuntu上用Emacs和Maven开发Java应用(包括TestNG和Web application)的技巧总结出来,希望对有志于Linux开发的朋友有帮助。我并不反对用IDE开发,但是很多时候,Emacs能够带来更快的速度(同时对机器硬件要求也很小),对Java工程的更透彻了解,更容易和开源领域的工程师交流。我还不怎么喜欢用鼠标,Emacs让我能够解放我的右手。

安装

1.确保你已经安装了JDK
2.确保你安装了Maven
3.安装Emacs:sudo apt-get install emacs
4.下载jdee-bin-2.4.0.1.zip和依赖文件elib-1.0.zip,地址在这里:http://sourceforge.net/projects/jdee/files/
5.将两个文件解压到/opt/emacs_plugins/目录下面
6.还需要下载ecb-2.40和ecb.el,也放在emacs_plugins目录下
7.下载javadoc-help的javadoc-help.el文件放在/opt/emacs_plugins/java目录下面 http://javadochelp.sourceforge.net/

配置.emacs


配置JDEE

;;JDEE configuration(add-to-list 'load-path (expand-file-name "/opt/emacs_plugins/jdee-2.4.0.1/lisp"))(load-file "/opt/emacs_plugins/cedet-1.0pre7/common/cedet.el")(add-to-list 'load-path (expand-file-name "/opt/emacs_plugins/elib-1.0"))(add-to-list 'load-path (expand-file-name "/opt/emacs_plugins/ecb-2.40"));;(add-to-list 'load-path (expand-file-name "/opt/emacs_plugins/jde-jalopy"))(load-file (expand-file-name "/opt/emacs_plugins/ecb-2.40/ecb.el"))(require 'font-lock)(require 'ecb)(require 'ecb-autoloads)(require 'jde)(custom-set-variables '(browse-url-browser-function (quote browse-url-generic)) '(browse-url-generic-program "chromium-browser") '(column-number-mode t) '(jde-complete-function (quote jde-complete-menu)) '(jde-debugger (quote ("jdb"))) '(jde-jdk-registry (quote (("1.6.0_35" . "/usr/jdk1.6")))) '(jde-resolve-relative-paths-p t) '(jde-run-option-debug (quote ("Server" "Socket" "javadebug" nil "5005" t))))

查看API文档

可惜的是javadoc-helper不能检索jdk文档。自己在浏览器里面保留一个书签代替吧。
;; Java document support(add-to-list 'load-path (expand-file-name "/opt/emacs_plugins/java"))(require 'javadoc-help)(javadoc-set-predefined-urls '("/opt/java_docs/common-cache-1.0.0-javadoc"                               "/opt/java_docs/commons-codec-1.4-javadoc"                               "/opt/java_docs/commons-logging-1.1.1-javadoc"                               "/opt/java_docs/ehcache-server-1.0.0-javadoc"                               "/opt/java_docs/gson-1.7.1-javadoc"                               "/opt/java_docs/jcommander-1.12-javadoc"                               "/opt/java_docs/jersey-apache-client-1.9.1-javadoc"                               "/opt/java_docs/jersey-client-1.9.1-javadoc"                               "/opt/java_docs/jersey-core-1.9.1-javadoc"                               "/opt/java_docs/joda-time-1.6.2-javadoc"                               "/opt/java_docs/junit-4.8.2-javadoc"                               "/opt/java_docs/logback-classic-1.0.0-javadoc"                               "/opt/java_docs/logback-core-1.0.0-javadoc"                               "/opt/java_docs/lombok-0.10.4-javadoc"                               "/opt/java_docs/mongo-java-driver-2.7.2-javadoc"                               "/opt/java_docs/mybatis-3.0.5-javadoc"                               "/opt/java_docs/slf4j-api-1.6.4-javadoc"                               "/opt/java_docs/snakeyaml-1.6-javadoc"                               "/opt/java_docs/testng-6.1.1-javadoc"))(global-set-key [(f1)]          'javadoc-lookup)  ; F1 to lookup(global-set-key [(shift f1)]    'javadoc-help)    ; Shift-F1 to bring up menu

注意,上面的文档目录都是自己从互联网上下载的,如果使用maven构建项目,可以很方便的用一个脚本文件将文件jar包下载下来,并且复制到/opt/java_docs/目录下。
mvn cleanmvn dependency:resolve -Dclassifier=javadocrm -rf /opt/java_docsmkdir /opt/java_docscp $(find ~/.m2/repository/ -name *javadoc.jar) /opt/java_docs/


 
  下面这个脚本可以帮助我把所有jar文件解压到同名目录下。 
 
#!bin/shpath=/opt/java_docsfor f in $(ls $path/*.jar);do    name=`basename $f`    name2=`echo $name | sed 's/\.jar//g'`    echo $name2    mkdir $path/$name2    cd $path/$name2    jar xvf $path/$namedonerm -f *.jar

这个脚本可以生成需要配置的目录路径,用在.emacs中。
path=/opt/java_docsfor f in $(ls $path/);do    name=`basename $f`    echo \"/opt/java_docs/$name\"done

配置工程文件

为每一个Maven工程目录里面创建一个prj.el文件。下面的是一个例子。/opt/jdk_src的jdk源代码文件是从jdk目录的src.zip解压而来。
jde-global-classpath里面列出了本项目使用的jar包。注意是绝对路径。
'(jde-db-option-connect-socket (quote (nil "5005"))) 指的是远程调试的连接端口,后面调试一节再细讲。
'jde-sourcepath 里面指定了源代码路径
手动配置这些东西的确有点麻烦,将来可以学点lisp编程,在Emacs里面自动产生这个文件。先凑合着用吧。

(jde-project-file-version "1.0")(jde-set-variables '(jde-db-source-directoiries "/opt/jdk_src") '(jde-global-classpath (quote ("./target/classes"                                "./target/test-classes"                                "/home/chenshu/.m2/repository/joda-time/joda-time/1.6.2/joda-time-1.6.2.jar"                                "/home/chenshu/.m2/repository/com/sun/jersey/jersey-client/1.9.1/jersey-client-1.9.1.jar"                                "/home/chenshu/.m2/repository/org/testng/testng/6.0.1/testng-6.0.1.jar"))) '(jde-db-option-connect-socket (quote (nil "5005"))) '(jde-sourcepath (quote ("./src/main/java/com/freebird/business"                          "./src/test/java/com/freebird/test"                           ))))


Windows7 下的配置
最后附一个windows7的配置,当时整了好久,早算cedet不报错,勉强能用。
(setq debug-on-error t)(global-set-key [f5] (lambda() (interactive) (revert-buffer t t)))(setq c-basic-offset 4)(show-paren-mode);;JDEE configuration(add-to-list 'load-path (expand-file-name "c:/emacs_plugins/jdee-2.4.0.1/lisp"))(add-to-list 'load-path (expand-file-name "c:/emacs_plugins/cedet-1.0/common"))(load-file "c:/emacs_plugins/cedet-1.0/common/cedet.el")(add-to-list 'load-path (expand-file-name "c:/emacs_plugins/cedet-1.0/semantic"))(add-to-list 'load-path (expand-file-name "c:/emacs_plugins/cedet-1.0/eieio"))(add-to-list 'load-path (expand-file-name "c:/emacs_plugins/cedet-1.0/speedbar"))(add-to-list 'load-path (expand-file-name "c:/emacs_plugins/elib-1.0"))(add-to-list 'load-path (expand-file-name "c:/emacs_plugins/ecb-2.40"))(load-file (expand-file-name "c:/emacs_plugins/ecb-2.40/ecb.el"))(require 'font-lock)(require 'ecb)(require 'ecb-autoloads)(require 'jde)(custom-set-variables '(browse-url-browser-function (quote browse-url-generic)) '(browse-url-generic-program "chromium-browser") '(column-number-mode t) '(jde-gen-buffer-boilerplate (quote (nil "//Copyright (c) 2011-2012 Esri// Esri (Beijing) Software Research and Development Center All rights reserved under the copyright laws of the United States."))) '(jde-complete-function (quote jde-complete-menu)) '(jde-debugger (quote ("jdb"))) '(jde-db-option-connect-socket (quote (nil "9009"))) '(jde-jdk-registry (quote (("1.6.0_29" . "C:/Program Files/Java/jdk1.6.0_29")))) '(jde-resolve-relative-paths-p t) '(jde-run-option-debug (quote ("Server" "Socket" "javadebug" nil "5005" t))))(setq tab-width 4)(setq c-basic-offset 2)

由于公司规定,里面增加了开发用的文件头的说明。




           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值