我的环境:主机是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放到该文件下。我们可以在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)
- !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,请注意末尾的“.”
- [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是一样的,相信大家都知道的。