这个星期一部门老大忽然冒出一句:“小祝,你对linux怎么样啊,用过没?”,于是俺就老实的回答:“在学校的时候自己学习过一点点”。然后然后……没有下文了,不知道老大是什么意思?好 吧,想想自己作为一个研发人员,如果哪天忽然有需求要在linux下做开发,难不成还要别人帮我搭配开发环境吗?(是不是有点想多了啊,windows都 没有玩转就想到linux,是不是我有点……想太多,哈哈),于是决定自己利用下班业余时间就试着去搭建作为一个Java程序员的开发环境啦。。。。。不 多说了,action
我的环境:主机是win7的,虚拟机是VWare Workstation 6.0 ,linux系统为Red Hat Enterprise Linux 5 64位
各软件版本:jdk是jdk-6u35-linux- x64.bin,tomcat是apache-tomcat-6.0.35.tar.gz,数据库为mysql是mysql-5.5.27- linux2.6-x86_64.tar.gz,eclipse是eclipse-jee-juno-linux-gtk- x86_64.tar.gz(各个软件的下载地址这里就不列出来了,看官们自己百度或谷歌下吧)
好了,软件现在已经准备好。接下来就是安装了。首先我们要让虚拟机中的linux系统能够找到windows7中的各个软件(当然了,如果在虚拟机中装 linux系统已经配置了上网的环境,那么也可以进入linux的桌面操作系统通过浏览器去下载各个软件直接到linux系统中)即把各个软件如何挂载到 linux系统中。
首先我们可以建一个文件夹(随便命名,我的是叫linuxsoft),把上面的jdk、tomcat、mysql、eclipse放到该文件下。具体操作如下图所示:
点 击添加后有操作向导,按照操作向导操作完之后在点击ok按钮就使得我们可以在linux访问主机系统中的linuxsoft文件夹了啊。我们可以在 linux的控制台输入下面命令来查看是否已经挂载上:cd /mnt/hgfs/linuxsfot(这里的linuxsoft请替换成各位看官们自己再windows系统创建的文件名),回车,然后再输入:ls -l 是不是已经看到了呢?哈哈哈
一、装jdk
第一步:复制文件到linux系统中
linux的控制台输入:cd /mnt/hgfs/linuxsoft ,然后输入:cp jdk-6u34-linux-i586.bin /home(ps:jdk-6u35-linux-x64.bin这个文件名好长啊,一个个输入那不要死人啊,告诉一个小技巧,我们先输入jdk然后按tab键就会自动补全的哟!呵呵), 当然如果你想一步把所有的文件都复制到linux系统中去。那么也可以这样:cd /mnt/hgfs,然后再cp -r linuxsoft /home(如果文件多的话,可能要点时间复制哟,不愿等的话还是一个个复制得了,反正利用tab补全命令输入也好快啊!)完了之后我们都可以进入cd /home然后ls 一下查看是不是已经真的复制进去了。
第二步:解压安装jdk
对于bin这样的后缀文件,在linux系统控制台输入:./jdk-6u34-linux-i586.bin (当然这里这样输入的前提是我们已经进入到了home目录下,我们可以用pwd命令查看当前我们在什么路径下)敲回车就是一堆一堆的信息,这些我们都可以不用管。解压安装后之后进入输入状态说明已经ok了。紧接着我 们再输入:mv XXXXXXXXXXXXXXXX(表示各个软件解压安装后的文件名) XXXX(新的好记的对应文件名,如: java、tomcat、mysql、eclipse),这个主要是修改文件名方便我们修改path值啊、相关配置文件啊等等,毕竟老长的文件名确实看着 也不舒服。
第三步:配置环境变量
配置环境变量有下面三种方法,对于第一种配置时全局配置,必须以root用户登录才可以修改配置。配置完之后不管事哪一个用户登录了都可以使用该java
1. 修改/etc/profile文件
第一步:复制文件
请参考安装jdk的第一步
第二步:解压安装
对于".tar.gz"的文件,linux中使用tar来解压缩
我们先进入到home目录下,然后输入 : tar -zxvf apache-tomcat-6.0.35.tar.gz 敲回车后又是一堆一堆的信息不停的闪啊,不管,如果要我们敲y/n的我们敲y就是了(如果我们再windows下安装程序要点击同意或者不同意之类的,当然点击同意对吧,不点同意人家怎么敢让你继续安装啊,呵呵)
改文件名跟jdk一样,输入:mv apache-tomcat-6.0.35.tar.gz tomcat
第三步:配置环境变量
同jdk的环境变量一样,配置之后的文件内容应该如下:
JAVA_HOME=/home/java
TOMCAT_HOME=/home/tomcat
保存推出
jdk和tomcat配置文件如下图所示:
第四步:启动tomcat
进入tomcat的bin目录,ls -l之后我们会发现以下文件
输入:sh startup.sh
再输入 netstat /nat查看端口号
启动之后我们也可以进入桌面应用程序下(利用startx命令就可以进入)打开浏览器查看是否可以看到那只可爱的猫
看到了没啊??
ps:关于tomcat添加用户名跟密码,我们也可以进入这样,在控制台输入:cd /home/tomcat/conf,然后ls -l一下找到tomcat-user.xml,然后vitomcat-user.xml添加一个用户名和密码(添加用户也是利用vi命令,跟前面安装jdk配置path环境变量是一样的步骤啊!),比如添加之后我的该文件如下
至此tomcat也安装好了。
三、安装eclipse
第一步:复制文件
请参考安装jdk的第一步复制文件
第二步:解压安装
请参考安装tomcat第二步解压安装
第三步:启动eclipse
首先我们得先进入桌面应用程序(我们不可能在控制台使用eclipse,因为 eclipse本来就是图形化的程序。哪天要是有牛人开发出来,即使开发出来也没有人用估计,因为我们用eclipse开发就是为了加快项目开发,在控制 台下???那岂不是拖慢开发进度啊?)进入到eclipse目录中,在控制台输入:eclipse。
注意:由于我之前下载的jdk版本是1.6的32位的,导致启动eclipse时报错,报错信息大致如下:JVM terminated. Exit code=13
百度了一下,这样的问题大致可以分以下几种情况解决:
1、版本不对
再用vi打开那个日志文件如下:
- !SESSION 2012-09-01 00:14:07.716 -----------------------------------------------
- eclipse.buildId=unknown
- java.version=1.6.0_35
- java.vendor=Sun Microsystems Inc.
- BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
- Framework arguments: -product org.eclipse.epp.package.jee.product
- Command-line arguments: -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.jee.product
- !ENTRY org.eclipse.equinox.p2.reconciler.dropins 4 0 2012-09-01 00:14:18.049
- !MESSAGE FrameworkEvent ERROR
- !STACK 0
- org.osgi.framework.BundleException: The bundle "org.eclipse.equinox.p2.reconciler.dropins_1.1.200.v20120301-2145 [305]" could not be resolved. Reason: Missing Constraint: Require-Bundle: org.eclipse.equinox.p2.touchpoint.eclipse; bundle-version="1.0.0"
- at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1332)
- at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java:1316)
- at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:323)
- at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390)
- at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1177)
- at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
- at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
- at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
- at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
- at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
- at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
- at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
- at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
- !ENTRY org.eclipse.osgi 4 0 2012-09-01 00:14:18.606
- !MESSAGE Application error
- !STACK 1
- org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
- at org.eclipse.swt.SWT.error(SWT.java:4387)
- at org.eclipse.swt.widgets.Display.createDisplay(Display.java:913)
- at org.eclipse.swt.widgets.Display.create(Display.java:899)
- at org.eclipse.swt.graphics.Device.<init>(Device.java:156)
- at org.eclipse.swt.widgets.Display.<init>(Display.java:497)
- at org.eclipse.swt.widgets.Display.<init>(Display.java:488)
- at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:666)
- at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
- at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:154)
- at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:96)
- at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
- at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
- at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
- at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
- at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
- at java.lang.reflect.Method.invoke(Method.java:597)
- at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
- at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
- at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
- at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
重点是那些个swt、ui看到了没???说明控制台这样打开是不行滴,必须进入到桌面应用程序才能打开!
赶紧试下吧!
四、安装mysql
作为一个程序员,其实对于数据库之类的安装优化管理,在稍微正规点的公司我们都不需要去做,因为会有专门的人去管理数据库。我们在程序中只需要连接ip地 址、用户名、密码就可以了。而且,在linux中,数据库的安全优化是一个比较大的研究方向。这里只是说下大概的安装,对于安装后数据库的安全以及优化各 位看官们可以自己再找找相关方面的资料。
第一步:复制文件
第二步:解压缩安装
这两步请参考前面安装tomcat的步骤
第三步:创建用户和用户组
groupadd mysql //添加用户组 useradd -r -g mysql admin //在用户组中添加用户名
第四步:修改文件权限
- [root@localhost ~]# cd /usr/local/mysql
- [root@localhost mysql]# chown -R root:mysql . //把当前目录中所有文件的所有者所有者设为root,所属组为mysql,请注意末尾的“.”
第五步:初始化数据库
./scrips/mysql_install_db -user=admin
第五步:配置环境变量
[root@localhost ~]# vi /root/profile 在PATH=$PATH:$JAVA_HOME/bin添加参数为: PATH=$PATH:$JAVA_HOME/bin:/home/mysql/bin:/home/mysql/lib
保存退出
第六步:手动启动mysql
查看是否该进程已经启动:
看到mysqld说明已经正确启动了。
第七步:进入mysql
好了,至此mysql也安装好了啊。
后注:1、这里用admin账号进入mysql的时候并没有输入密码。
我们可以这样修改密码:bin/mysqladmin -uadmin password 123 (设置mysql的admin用户密码为123456)
进入mysql的时候我们可以这样进入:mysql -p123
2、我们这里启动时手动启动,为了方便的话我们可以设置开机自启动该进程。
cp /home/mysql/share/mysql/mysql.server /etc/init.d/mysqld ,对于mysql.server文件,有的系统是是在/home/mysql/support-files/mysql.server中。
3、如果要在程序中使用mysql数据库,还需要相关的驱动包,这个跟windows是一样的,相信大家都知道的。
终于写完了,由于我也是个小菜鸟,文中可能会有些不足的地方,希望大家能提出来一起学习一起进步!