用windows先的MyEclipse很方便,但是要把MyEclipse的web项目移植到Debian下,稍微有一点麻烦。当然,如果是ubuntu的话,直接装MyEclipse就可以了。这里只将针对于无图形界面的Debian的移植过程。
1.配环境(jdk+apache+tomcat+mysql)(当然,不需要数据库的就用配了)
2.把原来的项目移植到Linux下。
主要分为以上两个部分讲述。
=========================
1.1 jdk
我下载的是jdk.tar.gz包,在安装上和rpm的包有一点不同。
1.1.1 jdk上传到Debian中(推荐用winscp,方便且图形化)。
1.1.2 配置jdk的环境变量:在/etc/profile中增加下面这三个语句,保存后退出
# vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.24/ export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
1.1.3 使环境变量生效
# source /etc/profile
1.1.4 检验环境变了安装成功。输入如下的话,看是否可以出现jdk的版本号。或者写一个hello world,用javac,java编译运行,可以输出语句的就可以了。这个网上很多,随便找一下就可以了
# source /etc/profile
=========================
1.2 apache-tomcat
我是两个一起安装的,下载的是apache-tomcat.tar.gz的安装包。比较方便,完全不用安装。。。
1.2.1 把安装包上传到Debian,找一个文件夹解压这个安装包
# tar zxvf apache-tomcat-5.5.34.tar.gz
1.2.2 然后当前目录就会出现一个文件夹: apache-tomcat-5.5.34。 进入到这个文件夹中的bin目录下,命令行输入
# ./startup.sh
启动服务器。这个时候在浏览器中输入 http://you_id:8080 就可以看到tomcat的欢迎页面了。
当然,如果你的debian有独立ip的话就把you_id换成独立ip,没有的话。。。
服务器配好了后先不忙把项目导入进去。先配mysql
【以上代码和说明都来自或参考:http://www.linuxde.net/2011/10/1401.html】
==========================
1.3 MySQL
1.3.1 直接用apt-get安装
# sudo apt-get install mysql-server
我不知道为什么网上给了那么多安装mysql的教程,复杂有难装。这个多简单,一句话就搞定了,而且用的时候一样好用。
1.3.2 添加用户。我是一直都用root的,因为是自己用,没什么关系。
# /usr/bin/mysqladmin -u root password 123456
这个就可以了,root用户,123456密码
1.3.3 修改字符编码。这个时候的数据如果存入中文的话,在数据库中会显示??。这种情况下,使用where xxx="dddd"查询的时候结果为空。所以要修改 /etc/my.cnf 文件:
以下每一项都最好是添加下面的话,尽量不要删除原来的语句。当然,有冲突的就以下面的为准:
[client] default-character-set=utf8 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 #default-character-set=utf8 character-set-server=utf8 init_connect='SET NAMES utf8' [mysql] no-auto-rehash default-character-set=utf8 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
1.3.4 重启服务器
#/etc/init.d/mysql restart
这个时候就可以了。当然,如果在做1.3.3这步操作之前数据库中已经有中文数据的话,这个中文数据应该是不会正常显示的
重新导入一次就可以了(1.3.3和1.3.4都参考自:http://www.linuxde.net/2011/10/1401.html)
=========================
到这里为止,环境都配完了,现在要开始移植。以一个我自己写的简单servlet小例子为例。
=========================
结构如上所示。重要的是src下面那个包中的java文件盒WEB_INF下面的lib和web.xml。
BookItem.java
public class BookItem extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response){ PrintWriter out; try { out = response.getWriter(); out.println("a BookItem page"); } catch (IOException e) { // TODO Auto-generated catch block //out.println("something else failed"); e.printStackTrace(); } } public void dePost(HttpServletRequest request, HttpServletResponse response){ doGet(request, response); } }
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>test</servlet-name> <servlet-class>com.bookiten.BookItem</servlet-class> </servlet> <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping> </web-app>
按照这种形式,在MyEclipse中打开服务器程序,在浏览器中输入http://localhost:8080/Test/test 就可以看到打印输出的【a BookItem page】
这一步成功了,说明在window下的程序可以正常运行。然后放到debian下。
特别说明:这个程序一定要先被编译一次,再拷贝到debian中。否则classes文件在debian下无法解析(恩,大概是这么个意思)
移植的时候非常简单,只需要移动两个文件夹就可以了。
1)首先我们要在debian解压得到的apache-tomcat/webapps目录下,新建一个文件夹,就叫它test,就是下面这个树形结构的根节点。
test
|-- WEB-INF
| |-- classes
| | `-- com
| | `-- bookiten
| | `-- BookItem.class
| |-- lib
| `-- web.xml
`-- com
`-- bookiten
`-- BookItem.java
然后我们可以看到,这个test根节点下面有两个文件夹,分别是WEB-INF和com
没错,这两个文件夹就是从刚才的MyEclipse项目中直接上传上去的。不需要做任何修改。值得注意的是,com.bookiten包是在src文件夹下面的。在windows下面,src文件夹比较有用。但是到了debian下面的话,就没必要要src了。
2)重启服务器。进入到apache-tomcat/bin目录下,在终端输入如下,重启服务器
./shutdown.sh
./startup.sh
3)在浏览器中输入http://you_ip/test/test 就可以看到【a BookItem page】输出了
这里需要注意的是,我们在windows下面输入的网址是Test/test, 而在debian下面输入的是test/test。大小写一定要分清。
因为在windows下面,MyEclipse的项目名称叫Test,所以在windows下面用Test/test
而在debian下,我们心间的文件夹是test,所以在debian下用test/test
这也说明,你的项目叫什么名字,就改成什么就可以了。
========================================
如果项目不涉及数据库操作的话,到这里就可以。但是如果涉及数据库的话,也没有复杂很多。最关键的就是导入mysql.jar包(参考自:http://blog.163.com/cvskill@126/blog/static/3814738020097604524363/)
①下载MySQL的JDBC驱动,我的是mysql-connector-java-5.1.7.jar包。网上随便都可以下到。
②把mysql.jar包上传到debian的随便什么目录下
③修改环境变量。我们在上面安装jdk的时候配过一次环境变量的。现在再在path中加上mysql.jar包的绝对路径就可以了
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:/home/software/mysql-connector-java-5.1.7.bin.jar:$PATH
需要注意的地方都已经标红了。和windows下面不同,debian的环境变了要用冒号分开,而不是分号。需要注意。
④再将这个mysql.jar包拷贝到apache-tomcat/lib目录下面(当然,在MyEclipse项目中所用到的所有jar包,都要考到这个目录下)
⑤万能的重新启动服务器
注意:
1. 在MyEclipse中访问数据库的用户名和密码,最好是和在debian中是一样的。因为代码需要编译才能在debian中使用,如果仅仅在debian中修改源码是没有效果的。所以数据库的用户名和密码最好保持一致
2. 还是在MyEclipse中,先编译再把源文件包和WEB-INF拷到debian中
然后就可以在浏览器上访问了。
Bon Appetite~