zoukankan      html  css  js  c++  java
  • 开发中遇到的问题及解决办法

     

    1、创建maven项目报出:Dynamic Web Module 3.0 requires Java 1.6 or newer.错误

    解决思路:出现此问题一般是jdk版本的问题,maven 2.1默认用jdk 1.3来编译,maven 3 用jdk 1.5,如果要用其他版本需要compiler插件指定

    解决办法:在pom.xml中加入下面这段

      

     <build>
          <plugins>  
            <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-compiler-plugin</artifactId>  
                <version>3.1</version>  
                <configuration>  
                    <source>1.7</source>  
                    <target>1.7</target>  
                </configuration>  
            </plugin>  
        </plugins>  
      </build>

    然后项目右键->Maven->Update project configuration,ok解决

    2、从oracle数据库中查询数字的时候,出现“.1”和“40.”问题

    问题描述:1)查询数字为0.1的时候,查询结果为.1

                  2)查询数字为40的时候,查询结果为40.(这个是在解决.1的时候出现的问题)

    解决思路:解决1)的方法为:to_char(0.1,'FM9999999990.99')。其中FM是将结果0.10->0.1

         但是在解决了1)的时候又会出现to_char(40,'FM9999999990.99')=40. 的问题,用rtrim('40.','.')=40将‘.’去掉

    所以最终的解决方案为:rtrim(to_char(num,'FM9999999990.99'),'.')

    3、在eclipse中进行开发时,经常会遇到切换jre版本问题

    解决办法:1)添加jre版本到eclipse

    2)项目右键->Properties->Java Build Path->libraries->Add Library->Alternate JRE进行更换jre版本

    4、linux 下执行.sh文件总是提示permission denied

    如果你是root登陆的话(不是的话,切换到root用户,对*.sh赋可执行的权限)
    chmod 777 *.sh

     or

    chomd +x file.sh

    然后运行就OK了

    5、关于web项目中乱码的问题

     1)form表单post的提交不会出现乱码

     2)get方式提交url会出现乱码

    解决办法:url在js中处理一下

    var requestUrl = "/login.action?userName="张三";
    requestUrl=encodeURI(requestUrl);
    requestUrl=encodeURI(requestUrl);//注意这里必须要处理两遍,不然tomcat会解码一次,相当于没编码

    在action中解码

    String userName = request.getParameter("userName");
    userName = URLDecoder.decode(userName, "UTF-8"); 

     6、修改mysql密码,新密码没有生效

    问题分析:出现此问题的原因是没有刷新权限

    解决办法:

      1) 修改密码后重启数据库

     2) 修改密码后刷一下权限:Flush privileges

    附-修改密码:

      1)sql语句修改

    UPDATE user SET password=PASSWORD('新密码') WHERE user='用户名';
    FLUSH PRIVILEGES;
    
    
    或者
    SET PASSWORD FOR root=PASSWORD('123456');

       2)命令行修改

    mysqladmin -u USER -pOLDPASSWORD password PASSWORD

    7、移植数据库后出现[Err] 1449 - The user specified as a definer ('admin'@'localhost') does not exist错误

    问题描述:用软件将本地数据及结构导出数据库脚本,在另外一台上面执行相应的数据库脚本,当运行程序插入或者触发事件时报错:[Err] 1449 - The user specified as a definer ('admin'@'localhost') does not exist

    解决思路:出现这个问题是因为另外一台电脑没有admin用户(每次用软件新建连接时相当于新建用户)

    解决办法:

     1)

    grant all privileges on *.* to admin@"%" identified by ".";
    flush privileges;

       2)将之前导出的脚本中关于admin的换成另外一台机器上的用户,让后再执行数据库脚本

       3)更新数据库的definer

    UPDATE mysql.proc SET definer='root@localhost' WHERE definer = '*admin*@localhost';
    UPDATE mysql.event SET definer='root@localhost' WHERE definer = '*admin*@localhost';

     8、java中用double损失精度的问题,出现0.0000**1偏差

    问题描述:double 进行运算时,经常出现精度丢失的问题,总是在一个正确的结果左右偏0.0000**1。经常会因为精度丢失而导致程序处理流程出错。  
                  所以一般对double类型进行运算时,做好对结果进行处理,然后拿这个值去做其他事情。  

    解决思路:使用之前进行处理

    解决办法:

      1)java中

     /**   
         * 对double数据进行取精度.   
         * @param value  double数据.   
         * @param scale  精度位数(保留的小数位数).   
         * @param roundingMode  精度取值方式.   
         * @return 精度计算后的数据.   
         */   
        public static double round(double value, int scale,  
                 int roundingMode) {    
            BigDecimal bd = new BigDecimal(value);    
            bd = bd.setScale(scale, roundingMode);    
            double d = bd.doubleValue();    
            bd = null;    
            return d;    
        }    
    
    
         /**  
         * double 相加  
         * @param d1  
         * @param d2  
         * @return  
         */  
        public static double sum(double d1,double d2){  
            BigDecimal bd1 = new BigDecimal(Double.toString(d1));  
            BigDecimal bd2 = new BigDecimal(Double.toString(d2));  
            return bd1.add(bd2).doubleValue();  
        }  
    
    
        /**  
         * double 相减  
         * @param d1  
         * @param d2  
         * @return  
         */  
        public static double sub(double d1,double d2){  
            BigDecimal bd1 = new BigDecimal(Double.toString(d1));  
            BigDecimal bd2 = new BigDecimal(Double.toString(d2));  
            return bd1.subtract(bd2).doubleValue();  
        }  
    
        /**  
         * double 乘法  
         * @param d1  
         * @param d2  
         * @return  
         */  
        public static double mul(double d1,double d2){  
            BigDecimal bd1 = new BigDecimal(Double.toString(d1));  
            BigDecimal bd2 = new BigDecimal(Double.toString(d2));  
            return bd1.multiply(bd2).doubleValue();  
        }  
    
    
        /**  
         * double 除法  
         * @param d1  
         * @param d2  
         * @param scale 四舍五入 小数点位数  
         * @return  
         */  
        public static double div(double d1,double d2,int scale){  
            //  当然在此之前,你要判断分母是否为0,    
            //  为0你可以根据实际需求做相应的处理  
    
            BigDecimal bd1 = new BigDecimal(Double.toString(d1));  
            BigDecimal bd2 = new BigDecimal(Double.toString(d2));  
            return bd1.divide  
                   (bd2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();  
        }  

       2)js中四舍五入  

    小数点问题  
    Math.round(doubleNumber*100)/100 (保留 2 位)  

    function formatFloat(src, pos)  
    {  
      return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);  
    }  

     9、解决sublime text3   ctrl+shift+p 报“package control there are no packages available for installation”错误

    这个问题的原因因该是网站证书的原因吧!

    我们要想正常使用Package Control来安装插件的话,我们可以将浏览器检查证书的地方给勾掉。

  • 相关阅读:
    Nginx 部署多个 web 项目(虚拟主机)
    Nginx 配置文件
    Linux 安装 nginx
    Linux 安装 tomcat
    Linux 安装 Mysql 5.7.23
    Linux 安装 jdk8
    Linux 安装 lrzsz,使用 rz、sz 上传下载文件
    springMVC 拦截器
    spring 事务
    基于Aspectj 注解实现 spring AOP
  • 原文地址:https://www.cnblogs.com/tombsky/p/3922202.html
Copyright © 2011-2022 走看看