我的環境:主機是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,數據
我的環境:主機是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.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、版本不對
輸入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- !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 //在用戶組中添加用戶名
第四步:修改文件許可權
[plain] view plaincopy- [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是一樣的,相信大家都知道的。