我把以前部署在windows服务器上的Java应用,迁移到linux上,会不会有影响?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
java跨平台的,通过jvm实现解耦一般不会有影响; 但是如果本身有一些涉及jvm的设置等,还是需要验证一下,建议多做回归测试
一、运行环境的配置 
◆ JDK的配置
如果只有当前用户使用JDK,
JAVA_HOME=/opt/jdk1.6.0_20 
CLASSPATH=.JAVA_HOME/lib.tools.jar 
PATH=$JAVA_HOME/binPATH 
export JAVA_HOME CLASSPATH PATH 
保存退出。 
要使JDK在所有的用户中使用,可以这样: 
vi /etc/profile.d/java.sh 
在新的java.sh中输入以下内容:
JAVA_HOME=/opt/jdk1.6.0_20 
CLASSPATH=.JAVA_HOME/lib/tools.jar 
PATH=$JAVA_HOME/binPATH 
export JAVA_HOME CLASSPATH PATH 
保存退出,然后给java.sh分配权限:#chmod 755 /etc/profile.d/java.sh
检查JDK是否安装成功。
如果看到JVM版本及相关信息,即安装成功!
◆ TOMCAT的配置
为了方便,将生成的文件修改为tomcat-5.5.29
在文件末尾加入 
  #set tomcat environment 
  export JAVA_HOME=/opt/jdk1.6.0_20 
  export CLASSPATH=$JAVA_HOME/lib/dt.jarJAVA_HOME/lib/tools.jar:. 
  export CATALINA_HOME=/opt/ tomcat-5.5.29 
  export PATH=$JAVA_HOME/binPATH 
使用命令#source /etc/profile 让修改后的文件立即生效。
启动tomcat服务 #./startup.sh 
   打开浏览器 http://localhost:8080,看是否安装成功。 
   关闭tomcat服务 #./shutdwon.sh 
◆ Mysql据库.sql文件导入导出
1. sql文件导出: 
   先用cmd到mysql的bin目录下: 
   如: 
    1)  E:\program files\MySQL\MySQL Server 5.0\bin>下 
    2)  E:\program files\MySQL\MySQL Server 5.0\bin>mysqldump     -u root -p userurl>links.sql 
    3)  Enter password:123456 
    4)  会自动在E:\program files\MySQL\MySQL Server 5.0\bin>---------目录下生成links.sql文件 
sql文件导入:
   C:\mysql\bin>mysql  -u  用户名 -p  数据库名 <  c:/test.sql     (source " c:\adsense.sql"    ) 
   中间的空格是一个空格位。 
例如:
   var\lib\mysql>mysql -u root -p info < c:/myro.sql 
   Enter password: **** 
   稍等一会,就可以导入数据表。 
二、操作中遇到的问题 
◆ 数据库方面
 在将.sql文件执行导入到info数据库的时候可能会报出如下错误: 
   ERROR 1045 (28000):Access denied for user 'root'@'localhost' (using password:YES) 
   
解决办法:
 # service mysqld stop 
 # mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 
 # mysql -u root mysql 
   mysql> UPDATE user SET Password=PASSWORD('123') where USER='root'; 
   mysql> FLUSH PRIVILEGES; 
   mysql> quit 
 # service mysqld start 
 # mysql -uroot -p 
   Enter password: <输入新设的密码123> 
   mysql> 
② 在将.sql文件导入到info数据库时可能会报如下错误: 
ERROR 1005 (HY000) at line 25: Can't create table './info/category.frm' (errno: 121)       此错误的原因是自己以前测试时建过info数据库,当时删除时是通过手动直接删除/var/lib/mysql中info数据库。这样做以为是没多大问题,实际上没有删除完全。
解决办法: 
再次创建一个info数据库,然后通过命令行执行删除drop database info; 
③ 登陆mysql数据库时可能会报如下错误: 
   ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解决办法: 
启动mysql的守护进程,执行service mysqld start就行了 
④ mysql数据库表名大小写敏感问题:
解决办法:
用root登录,修改/etc/my.cnf
解决办法:
  ⅰ、 MYSQL创建数据库时候直接指定编码和排序规则: 
   UTF8:create database `info`default character set utf8 collate utf8_general_ci; 
 ⅱ、 改变系统默认字符集,改变如下: 
etc/my.cnf中[mysqld]字段后加入如下语句default-character-set=gb2312
◆ tomcat方面 
① tomcat的server.xml配置问题:
   当appBase指向info项目时tomcat无法正常启动。 
   
解决办法:
  将sever.xml中的配置修改如下: 
   <Host name="localhost" appBase="webapps" 
   unpackWARs="true" autoDeploy="true" 
   xmlValidation="false" xmlNamespaceAware="false"> 
   <Context path="" docBase="/opt/tomcat-5.5.29/project/info" debug="0" reloadable="true" ></Context> 
    ....... 
② Tomcat中连接池的配置问题:
<Context> 
<!-- Default set of monitored resources --> 
<WatchedResource>WEB-INF/web.xml</WatchedResource>     
<!-- Uncomment this to disable session persistence across Tomcat restarts --> 
<!-- 
<Manager pathname="" /> 
--> 
<Resource auth="Container" name="jdbc/DBD" 
    type="javax.sql.DataSource" password="" 
    driverClassName="org.gjt.mm.mysql.Driver" maxIdle="2" maxWait="5000" 
    username="root      url="jdbc:mysql://localhost:3306/info?useUnicode=true&characterSetResults=UTF-8" 
    maxActive="8" removeAbandoned="true" removeAbandonedTimeout="10" 
    logAbandoned="true" /> 
三、环境配置存放目录明细
 ① jdk :   放在/opt/jdk1.6.0_20目录下 
 ② tomcat:放在/opt/tomcat-5.5.29目录下 
 ③ mysql: /var/lib/mysql    -- 数据库目录 
             /usr/bin/mysql   -- mysqladmin mysqldump等命令 
             /etc/rc.d/init.d   -- 启动脚本文件mysql的目录 
             /usr/share/mysql -- mysql.server命令及配置文件 
四、启动、关闭服务的命令
 ① 启动mysql服务: service mysqld start 
    关闭mysql服务: service mysqld stop 
 ② 启动tomcat服务:先进入/opt/tomcat-5.5.29/bin 执行 ./startup.sh 
    关闭tomcat服务:先进入/opt/tomcat-5.5.29/bin 执行 ./shutdown.sh
数据库的话是连接的rds的话没啥影响,java是跨平台的语言,去那个平台都是依靠他的jvm,不过做这种迁移,还是要先备份数据,该有的流程要有。
如果数据库需要迁移可以参考:
https://yq.aliyun.com/articles/66164?spm=5176.10695662.1996646101.searchclickresult.3faf32acyMABki
Java是跨平台的。不会有什么大的影响。但注意多测试,特别是涉及文件操作的。