[环境配置]JDK+eclipse(m2e,svn)+svn+maven

本文详细记录了在Ubuntu系统中配置JDK、Eclipse(包含m2e和svn插件)、以及解决JavaHL库问题的过程,同时也分享了在配置过程中遇到的挑战和解决方案,特别是解决mvn package命令打war包失败的问题。

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

前言
泛滥的主题,但自己操作时总还是会遇到各种问题。
这回为了一次maven package打war包出错问题,将环境各种重配置,觉得还是受益匪浅了,虽说最后莫名地问题解决了。所以,特此记录一下整个环境的配置。


JDK的配置
常见的不能再常见的内容,在此不详述怎么下载,怎么解包等简单问题了。

博主用apt-get分别安装了java7(java-7-oracle)和openjdk6(java-6-openjdk),而java6(jdk1.6.0_29)是手动安装的。如下:
drwxr-xr-x   7 root root  4096 2012-04-11 11:45 java-6-openjdk/
drwxr-xr-x   8 root root  4096 2012-04-11 10:21 java-7-oracle/
drwxr-xr-x  10 root root  4096 2012-04-13 11:44 jdk1.6.0_29/

网上有些文章会说把jdk放在/var下,但我觉得还是按apt-get install默认的目录比较好。
后来,自己并没有用openjdk。因为后期maven配置出错时,定位可能是openjdk的问题,在网上查好像也说如果使用openjdk,mvn doc时会有问题(其他不清楚)。

自己用 update-alternatives --install 在/usr/bin/中安装java相关的系统命令符号链接,指定java-7-oracle的/bin/java*,同时用update-alternatives --config设置具体选择的文件,如下:

update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-oracle/bin/java 300

wenlele@wenlele-PC:~$ sudo update-alternatives --config java
[sudo] password for wenlele: 
update-alternatives: 警告: 候选项 /opt/eclipse/jdk1.6.0_29/bin/java(链接组 java 的一部分)不存在。从候选项列表中移除。
有 2 个候选项可用于替换 java (提供 /usr/bin/java)。

  选择       路径                                    优先级  状态
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      自动模式
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      手动模式
* 2            /usr/lib/jvm/java-7-oracle/bin/java        300       手动模式
要维持当前值[*]请按回车键,或者键入选择的编号:

同时,在我的普通账户的~/.bashrc中最后添加PATH,CLASSPATH和JAVA_HOME的环境变量。
#set java environment
export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_29
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH  #要把系统的path放在后面,否则当前用户还是用着java7那个jdk。

网上有些文章说,在/etc/environment上配置相应新加的环境变量,或甚至有说在/etc/profile下配置,个人觉得,如果不是硬性要求全局性,我个人觉得还是尽量少动全局性的变量。

安装eclipse,配上原先有的svn,m2e插件.
博主先用apt-get install安装了eclipse,但发现版本是3.5。想了想,还是换成3.7。于是下载了,放在/opt/eclipse下。同时,把之前就有的svn,m2e插件文件能link方式安装了。(之前在windows下自己根据实验室的需求自己组了一个eclipse,以link方式加载所需的插件,如svn,m2e。这些插件是跨平台,可以直接放到linux下用)。关于link方式,自己很久之前写过相关博文( http://blog.csdn.net/wenlele/article/details/6210352)。

但,这样启动eclipse时,会提示以下 错误
Failed to load JavaHL Library.
These are the errors that were encountered:
no libsvnjavahl-1 in java.library.path
no svnjavahl-1 in java.library.path
no svnjavahl in java.library.path
java.library.path = /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/i386/client::/
usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/i386::/usr/lib/firefox:/usr/lib/
firefox/:/usr/java/packages/lib/i386:/lib:/usr/lib

说在 linux 环境下安装 eclipse svn 插件还需要 JavaHL 支持。 似乎没对使用造成什么功能性的影响(就每次启动和看svn信息的报个错)。但每次看着总是不爽的, 如何解决? 
国外一文章说
The simplest way to bypass this issue is to select the " SVNKit  (Pure Java)" in the " SVN  interface" section of the  SVN preferences. However if you require and/or desire the  JavaHL  subversion interface read on for a fix.

在eclipse中没找着设置SVNKit的地方,于是我选择安装javaHL,即libsvn-java(听说10.04之前是libsvn-javahl)
可以用apt-get install libsvn-java;网上说也可以自己下载,然后只用其中一些内容(我没试)
apt-get install libsvn-java后,会在/usr/lib/jni中安装解决此问题必需的文件(即)

lrwxrwxrwx   1 root root     23 2012-04-11 14:50 libsvnjavahl-1.so -> libsvnjavahl-1.so.0.0.0
lrwxrwxrwx   1 root root     23 2012-04-11 14:50 libsvnjavahl-1.so.0 -> libsvnjavahl-1.so.0.0.0
-rw-r--r--   1 root root 239800 2011-06-05 23:48 libsvnjavahl-1.so.0.0.0

如果eclipse是通过apt-get install eclipse安装的话,启动eclipse时会自动地连接这个文件夹。
如果不是,就得自己在配置一下,让eclipse启动命令的-vmargs命令中增加参数 -Djava.library.path=/usr/lib/jni
配置方法不唯一,我是在eclipse.ini中的-vmargs参数集最后再增加一行 -Djava.library.path=/usr/lib/jni;网上还有人是在 ~/.eclipse文件夹中创建 eclipserc文件,在里面填写 VMARGS =" -Djava.library.path =/ usr /lib/ jni "(我没试过)

更多可以看: http://islandlinux.org/howto/installing-javahl-subclipseeclipse-ubuntu

而安装subversion和maven2,我是直接用apt-get install的。


mvn package打war包一直出错
后来,在进行mvn package打war时(打jar,或clean等其他命令都行),一直提示错误,不管在IDE上还是命令行都说maven-war-plugin中有一个类找不到。
一般,也许是本地下载的包不完备导致的(我猜的,报错页面的帮助页面也是提示用户可能将本地包删了重下就好了。。),提示ClassNotFound。连续几次清掉~/.m2/repository内相应的包,让maven重新下载,一直不行,很无语。当时用的是openjdk编译,觉得可能是JDK的问题,于是换了,还不行。 然后有一次再把~/.m2/repository的包删除,然后,然后……命令行和IDE下都package成功了= =

到最后,我也不清楚是因为某次的配置好了,还是.m2/repository内的相应包内容不完备导致的。


一些感受

1)apt-get 虽然提供了极大的便利性,但具体过程的自动化向用户透明有时也会造成一些不方便,尤其在需要后续手动重配置的时候。所以,对于需要后期灵活配置的工具/软件,我觉得还是最好自己手动安装,以了解整个过程,方便以后手动更改配置。

2)生产环境决定生产效率。现在PC装ubuntu专注技术类等工作,而本本负责文档类的工作,效率还是不错的(很可能是因为很少被邮件或QQ打扰了)。 本来还想用本本接主机屏幕进行双屏,通过VNC访问PC,但通过在PC设VPN使两台机器同时能上网,这样键鼠只用一套,来回切换会更方便。但后来想想,觉得我的本本配置太低,未免好使,便罢了。
PS:基于生产环境问题,一大牛朋友一直想找能竖起来显示的宽屏,说这样看代码爽。的确,这样一屏代码看下来,想想也爽的,可惜实验室配的PC的屏幕都没有相关驱动支持……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值