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来安装插件的话,我们可以将浏览器检查证书的地方给勾掉。

  • 相关阅读:
    下载Web微信视频
    强制删除无用old windows文件夹命令
    BitLocker 加密工具挂起和恢复命令行(windows7)
    R 统计学工具部署和使用
    Microsoft Azure 01 (Summarize)
    RocketMQ原理
    专业术语概念
    序列化-ProtoBuf
    Kafka安装与集群部署
    Redis中使用Lua脚本
  • 原文地址:https://www.cnblogs.com/tombsky/p/3922202.html
Copyright © 2011-2022 走看看