[@古散][¥20]我把以前部署在windows服务器上的Java应用,迁移到linux上,会不会有影响?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

[@古散][¥20]我把以前部署在windows服务器上的Java应用,迁移到linux上,会不会有影响?

51学车 2018-10-29 19:57:55 1162

我把以前部署在windows服务器上的Java应用,迁移到linux上,会不会有影响?

Java Linux Windows
分享到
取消 提交回答
全部回答(5)
  • tinglang
    2019-07-17 23:10:53

    java跨平台的,通过jvm实现解耦一般不会有影响; 但是如果本身有一些涉及jvm的设置等,还是需要验证一下,建议多做回归测试

    0 0
  • hiekay
    2019-07-17 23:10:53

    一、运行环境的配置
    ◆ JDK的配置

    1. 从java.sun.com 网站上下载JDK,注意是要Linux平台的。
      这里我下的是jdk-6u20-linux-i586.bin,不是RPM的包。
    2. 在终端用root身份操作,将jdk-6u20-linux-i586.bin文件复制到/opt 下面,复制时使用命令 #cp XX /opt/
    3. 提权操作,使用命令 #chmod a+x jdk-6u20-linux-i586.bin
    4. 然后 #./jdk-6u20-linux-i586.bin。按空格阅读用户协议,最后输入”yes”来继续安装。
    5. 设置环境变量
      在最后面加入

    如果只有当前用户使用JDK,

    vi /etc/profile

    set java environment

    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中输入以下内容:

    set java environment

    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

    1. 检查环境变量是否配置成功

    echo $JAVA_HOME

    echo $CLASSPATH

    echo $PATH

    检查JDK是否安装成功。

    java –version

    如果看到JVM版本及相关信息,即安装成功!

    ◆ TOMCAT的配置

    1. 下载Tomcat
      从网站http://tomcat.apache.org/ 下载Tomcat,如apache-tomcat-5.5.29.tar.gz
    2. 解压文件
      使用解压命令# tar zxvf apache-tomcat-5.5.29.tar.gz

    为了方便,将生成的文件修改为tomcat-5.5.29

    mv apache-tomcat-5.5.29 tomcat-5.5.29

    1. 将文件拷贝到/opt/文件夹下
      #cp –R tomcat-5.5.29 /opt/
    2. 设置环境变量
      #vi /etc/profile/

    在文件末尾加入
    #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 让修改后的文件立即生效。

    1. 启动和关闭tomcat
      #cd /opt/ tomcat-5.5.29/bin

    启动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文件 
    
    1. 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数据库表名大小写敏感问题:

    解决办法:

    1. 用root登录,修改/etc/my.cnf

      1. 在[mysqld]下加一行:lower_case_table_names=1
      2. 重启数据库
        ⑤ 数据库乱码问题:

    解决办法:

      ⅰ、 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&amp;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
    0 0
  • 老离
    2019-07-17 23:10:53

    数据库的话是连接的rds的话没啥影响,java是跨平台的语言,去那个平台都是依靠他的jvm,不过做这种迁移,还是要先备份数据,该有的流程要有。

    如果数据库需要迁移可以参考:
    https://yq.aliyun.com/articles/66164?spm=5176.10695662.1996646101.searchclickresult.3faf32acyMABki

    0 0
  • wangccsy
    2019-07-17 23:10:52

    Java是跨平台的。不会有什么大的影响。但注意多测试,特别是涉及文件操作的。

    0 0
  • aoteman675
    2019-07-17 23:10:52

    都是java环境,没有影响。

    0 0
添加回答
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程