转载 Emacs开发Java http://blog.youkuaiyun.com/sheismylife/article/details/7027915

本文详细介绍如何在Ubuntu和Windows7环境下使用Emacs编辑器配合Maven进行Java应用开发,包括配置过程、JDEE插件使用、API文档查看及工程文件设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

指定jdk

  1. '(jde-jdk-registry (quote (("1.6.0_29" . "/usr/jdk1.6.0_29"))))  

配置JDEE

  1. '(jde-jdk-registry (quote (("1.6.0_29" . "/usr/jdk1.6.0_29"))))  
  2.   
  3. ;;JDEE configuration  
  4. (add-to-list 'load-path (expand-file-name "/opt/emacs_plugins/jdee-2.4.0.1/lisp"))  
  5. (load-file "/opt/emacs_plugins/cedet-1.0pre7/common/cedet.el")  
  6. (add-to-list 'load-path (expand-file-name "/opt/emacs_plugins/elib-1.0"))  
  7. (add-to-list 'load-path (expand-file-name "/opt/emacs_plugins/ecb-2.40"))  
  8. ;;(add-to-list 'load-path (expand-file-name "/opt/emacs_plugins/jde-jalopy"))  
  9.   
  10. (load-file (expand-file-name "/opt/emacs_plugins/ecb-2.40/ecb.el"))  
  11.   
  12. (require 'font-lock)  
  13. (require 'ecb)  
  14. (require 'ecb-autoloads)  
  15. (require 'jde)  
  16.   
  17. (custom-set-variables  
  18.  '(browse-url-browser-function (quote browse-url-generic))  
  19.  '(browse-url-generic-program "chromium-browser")  
  20.  '(column-number-mode t)  
  21.   
  22.  '(jde-complete-function (quote jde-complete-menu))  
  23.  '(jde-debugger (quote ("jdb")))  
  24.  '(jde-jdk-registry (quote (("1.6.0_29" . "/usr/jdk1.6.0_29"))))  
  25.  '(jde-resolve-relative-paths-p t)  
  26.  '(jde-run-option-debug (quote ("Server" "Socket" "javadebug" nil "5005" t))))  

查看API文档

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

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


下面这个脚本可以帮助我把所有jar文件解压到同名目录下。
  1. #!bin/sh  
  2. path=/opt/java_docs  
  3. for f in $(ls $path/*.jar);  
  4. do  
  5.     name=`basename $f`  
  6.     name2=`echo $name | sed 's/\.jar//g'`  
  7.     echo $name2  
  8.     mkdir $path/$name2  
  9.     cd $path/$name2  
  10.     jar xvf $path/$name  
  11. done  
  12.   
  13. rm -f *.jar  

这个脚本可以生成需要配置的目录路径,用在.emacs中。
  1. path=/opt/java_docs  
  2. for f in $(ls $path/);  
  3. do  
  4.     name=`basename $f`  
  5.   
  6.     echo \"/opt/java_docs/$name\"  
  7. 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里面自动产生这个文件。先凑合着用吧。

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


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

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

转载于:https://www.cnblogs.com/Thomson-Blog/articles/2504211.html

标题“51单片机通过MPU6050-DMP获取姿态角例程”解析 “51单片机通过MPU6050-DMP获取姿态角例程”是一个基于51系列单片机(一种常见的8位微控制器)的程序示例,用于读取MPU6050传感器的数据,并通过其内置的数字运动处理器(DMP)计算设备的姿态角(如倾斜角度、旋转角度等)。MPU6050是一款集成三轴加速度计和三轴陀螺仪的六自由度传感器,广泛应用于运动控制和姿态检测领域。该例程利用MPU6050的DMP功能,由DMP处理复杂的运动学算法,例如姿态融合,将加速度计和陀螺仪的数据进行整合,从而提供稳定且实时的姿态估计,减轻主控MCU的计算负担。最终,姿态角数据通过LCD1602显示屏以字符形式可视化展示,为用户提供直观的反馈。 从标签“51单片机 6050”可知,该项目主要涉及51单片机和MPU6050传感器这两个关键硬件组件。51单片机基于8051内核,因编程简单、成本低而被广泛应用;MPU6050作为惯性测量单元(IMU),可测量设备的线性和角速度。文件名“51-DMP-NET”可能表示这是一个与51单片机及DMP相关的网络资源或代码库,其中可能包含C语言等适合51单片机的编程语言的源代码、配置文件、用户手册、示例程序,以及可能的调试工具或IDE项目文件。 实现该项目需以下步骤:首先是硬件连接,将51单片机与MPU6050通过I2C接口正确连接,同时将LCD1602连接到51单片机的串行数据线和控制线上;接着是初始化设置,配置51单片机的I/O端口,初始化I2C通信协议,设置MPU6050的工作模式和数据输出速率;然后是DMP配置,启用MPU6050的DMP功能,加载预编译的DMP固件,并设置DMP输出数据的中断;之后是数据读取,通过中断服务程序从DMP接收姿态角数据,数据通常以四元数或欧拉角形式呈现;再接着是数据显示,将姿态角数据转换为可读的度数格
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值