你的位置:首页 > 操作系统

[操作系统]linux下安装jdk+tomcat+eclipse+mysql


我的环境:主机是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文件

    如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。
    ·用文本编辑器打开/etc/profile(命令:vi  /etc/profile),打开之后按i键进入编辑状态
    ·在profile文件末尾加入:
      JAVA_HOME=/home/java
      PATH=$PATH:$JAVA_HOME/bin
      CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
      export JAVA_HOME    PATH  CLASSPATH
               添加完成后按esc键然后再按“:”在“:”输入wq(保存并推出vi编辑器的意思)。
    ·重新登录(一定要记得重新登录,不然不会生效)
 
    ·说明
      a. 你要将 /home/java改为你的jdk安装目录
      b. linux下用冒号“:”来分隔路径
      c. $PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的值
                           在设置环境变量时特别要注意不能把原来的值给覆盖掉了,这是一种常见的错误。
      d. CLASSPATH中当前目录“.”不能丢,把当前目录丢掉也是常见的错误。
      e. export是把这三个变量导出为全局变量。
      f. 大小写必须严格区分。
  2. 修改.bashrc文件(当前用户)
    这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc文件就可以了。
    ·用文本编辑器打开用户目录下的.bashrc文件
    ·在.bashrc文件末尾加入:
      set JAVA_HOME=/home/java      
                         export JAVA_HOME
      set PATH=$PATH:$JAVA_HOME/bin
                   export PATH
              set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
                   export CLASSPATH
    ·重新登录
  3. 直接在shell下设置变量(这个是参考,其实我也不是很懂这个方法)
    不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦。
    只需在shell终端执行下列命令:
    export JAVA_HOME=/usr/share/jdk1.5.0_05
    export PATH=$PATH:$JAVA_HOME/bin
       export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
以上参考了gaojohn933的文章。利用:which  java命令我们也可以看到我们的jdk是否安装成功。
二、安装tomcat

第一步:复制文件

    请参考安装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

 PATH=$PATH:$JAVA_HOME/bin:$TOMCAT_HOME/bin
 CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 export JAVA_HOME   TOMCAT_HOME    PATH  CLASSPATH

   保存推出

jdk和tomcat配置文件如下图所示:

第四步:启动tomcat

进入tomcat的bin目录,ls -l之后我们会发现以下文件

输入:sh     startup.sh

再输入 netstat  /nat查看端口号

启动之后我们也可以进入桌面应用程序下(利用startx命令就可以进入)打开浏览器查看是否可以看到那只可爱的猫

看到了没啊??

ps:关于tomcat添加用户名跟密码,我们也可以进入这样,在控制台输入:cd /home/tomcat/conf,然后ls -l一下找到tomcat-user.

至此tomcat也安装好了。

三、安装eclipse

 第一步:复制文件

请参考安装jdk的第一步复制文件

第二步:解压安装

请参考安装tomcat第二步解压安装

第三步:启动eclipse

首先我们得先进入桌面应用程序(我们不可能在控制台使用eclipse,因为eclipse本来就是图形化的程序。哪天要是有牛人开发出来,即使开发出来也没有人用估计,因为我们用eclipse开发就是为了加快项目开发,在控制台下???那岂不是拖慢开发进度啊?)进入到eclipse目录中,在控制台输入:eclipse。

注意:由于我之前下载的jdk版本是1.6的32位的,导致启动eclipse时报错,报错信息大致如下:JVM terminated. Exit code=13

百度了一下,这样的问题大致可以分以下几种情况解决:

1、版本不对

    输入java -version确定安装的版本。本文的错误不是这个原因,因为安装的是1.6的
2、安装的位数不对(本文刚好是这个原因引起的)
     本文的eclipse是64位的,而安装的jdk却是32位的,所以要把jdk换成64位的即可
3、启动eclipse的时候该eclipse依赖的jdk不是我们自己安装的
     因为许多linux系统会自动jdk。此时我们可以通过 which java来查看我们linux系统上到底有几个jdk,再通过查看eclipse的错误提醒看是否依赖我们安装的jdk,如果不是,我们可以通过 eclipse  -vm  XXXXXXX/bin(我们自己安装java的路径)
如果在控制台直接输入:./eclipse我们将看到下面这种情况:

 

再用vi打开那个日志文件如下:

[plain] view plaincopy 
 


  1. !SESSION 2012-09-01 00:14:07.716 -----------------------------------------------  
  2. eclipse.buildId=unknown  
  3. java.version=1.6.0_35  
  4. java.vendor=Sun Microsystems Inc.  
  5. BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US  
  6. Framework arguments:  -product org.eclipse.epp.package.jee.product  
  7. Command-line arguments:  -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.jee.product  
  8.   
  9. !ENTRY org.eclipse.equinox.p2.reconciler.dropins 4 0 2012-09-01 00:14:18.049  
  10. !MESSAGE FrameworkEvent ERROR  
  11. !STACK 0  
  12. 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"  
  13.     at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1332)  
  14.     at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java:1316)  
  15.     at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:323)  
  16.     at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390)  
  17.     at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1177)  
  18.     at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)  
  19.     at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)  
  20.     at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)  
  21.     at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)  
  22.     at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)  
  23.     at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)  
  24.     at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)  
  25.     at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)  
  26.   
  27. !ENTRY org.eclipse.osgi 4 0 2012-09-01 00:14:18.606  
  28. !MESSAGE Application error  
  29. !STACK 1  
  30. org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]  
  31.     at org.eclipse.swt.SWT.error(SWT.java:4387)  
  32.     at org.eclipse.swt.widgets.Display.createDisplay(Display.java:913)  
  33.     at org.eclipse.swt.widgets.Display.create(Display.java:899)  
  34.     at org.eclipse.swt.graphics.Device.<init>(Device.java:156)  
  35.     at org.eclipse.swt.widgets.Display.<init>(Display.java:497)  
  36.     at org.eclipse.swt.widgets.Display.<init>(Display.java:488)  
  37.     at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:666)  
  38.     at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)  
  39.     at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:154)  
  40.     at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:96)  
  41.     at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)  
  42.     at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)  
  43.     at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)  
  44.     at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)  
  45.     at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)  
  46.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  47.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
  48.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
  49.     at java.lang.reflect.Method.invoke(Method.java:597)  
  50.     at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)  
  51.     at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)  
  52.     at org.eclipse.equinox.launcher.Main.run(Main.java:1438)  
  53.     at org.eclipse.equinox.launcher.Main.main(Main.java:1414)  

[plain] view plaincopy 


  1. !SESSION 2012-09-01 00:14:07.716 -----------------------------------------------  
  2. eclipse.buildId=unknown  
  3. java.version=1.6.0_35  
  4. java.vendor=Sun Microsystems Inc.  
  5. BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US  
  6. Framework arguments:  -product org.eclipse.epp.package.jee.product  
  7. Command-line arguments:  -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.jee.product  
  8.   
  9. !ENTRY org.eclipse.equinox.p2.reconciler.dropins 4 0 2012-09-01 00:14:18.049  
  10. !MESSAGE FrameworkEvent ERROR  
  11. !STACK 0  
  12. 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"  
  13.     at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1332)  
  14.     at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java:1316)  
  15.     at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:323)  
  16.     at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390)  
  17.     at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1177)  
  18.     at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)  
  19.     at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)  
  20.     at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)  
  21.     at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)  
  22.     at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)  
  23.     at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)  
  24.     at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)  
  25.     at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)  
  26.   
  27. !ENTRY org.eclipse.osgi 4 0 2012-09-01 00:14:18.606  
  28. !MESSAGE Application error  
  29. !STACK 1  
  30. org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]  
  31.     at org.eclipse.swt.SWT.error(SWT.java:4387)  
  32.     at org.eclipse.swt.widgets.Display.createDisplay(Display.java:913)  
  33.     at org.eclipse.swt.widgets.Display.create(Display.java:899)  
  34.     at org.eclipse.swt.graphics.Device.<init>(Device.java:156)  
  35.     at org.eclipse.swt.widgets.Display.<init>(Display.java:497)  
  36.     at org.eclipse.swt.widgets.Display.<init>(Display.java:488)  
  37.     at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:666)  
  38.     at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)  
  39.     at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:154)  
  40.     at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:96)  
  41.     at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)  
  42.     at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)  
  43.     at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)  
  44.     at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)  
  45.     at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)  
  46.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  47.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
  48.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
  49.     at java.lang.reflect.Method.invoke(Method.java:597)  
  50.     at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)  
  51.     at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)  
  52.     at org.eclipse.equinox.launcher.Main.run(Main.java:1438)  
  53.     at org.eclipse.equinox.launcher.Main.main(Main.java:1414)  

重点是那些个swt、ui看到了没???说明控制台这样打开是不行滴,必须进入到桌面应用程序才能打开!

 赶紧试下吧!

四、安装mysql

        作为一个程序员,其实对于数据库之类的安装优化管理,在稍微正规点的公司我们都不需要去做,因为会有专门的人去管理数据库。我们在程序中只需要连接ip地址、用户名、密码就可以了。而且,在linux中,数据库的安全优化是一个比较大的研究方向。这里只是说下大概的安装,对于安装后数据库的安全以及优化各位看官们可以自己再找找相关方面的资料。

第一步:复制文件

第二步:解压缩安装

       这两步请参考前面安装tomcat的步骤

 第三步:创建用户和用户组

   groupadd mysql   //添加用户组   useradd -r -g mysql admin  //在用户组中添加用户名

第四步:修改文件权限

[plain] view plaincopy 
 


  1. [root@localhost  ~]# cd /usr/local/mysql  
  2. [root@localhost  mysql]# chown -R root:mysql . //把当前目录中所有文件的所有者所有者设为root,所属组为mysql,请注意末尾的“.”  

[plain] view plaincopy 


  1. [root@localhost  ~]# cd /usr/local/mysql  
  2. [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是一样的,相信大家都知道的。