项目开发过程中实际遇到的几个问题处理

1、今天开发环境运行的时候出现下面问题

The project cannot be built until build path errors are resolved.

出现报错情况,之前也没有遇到过。

根据字面意思“在解决生成路径的错误之前,无法生成项目”,也就是说项目的路径位置配置错误,或者是所需要的某个或者某些jar包配置路径有误。

后来采用下面方法解决:

首先确保project->Build Automatically已经勾选上,然后project->clean。如果刷新之后没有效果,请重启STS。

2、下载一个学习的项目,在运行npm install时出现下面错误

     gyp verb `which` failed Error: not found: python2相关错误,主要包括npm install时出现gyp verb `which` failed Error: not found: python2相关错误,特别是python2相关错误,但实际上我们也没有用到也不可能过去安装它。

     

文字版错误日志

经过资料查询,推测是NodeJS和node-sass版本不匹配的问题:

| NodeJS  | Supported node-sass version | Node Module |
|---------|-----------------------------|-------------|
| Node 16 | 6.0+                        | 93          |
| Node 15 | 5.0+                        | 88          |
| Node 14 | 4.14+                       | 83          |
| Node 13 | 4.13+, <5.0                 | 79          |
| Node 12 | 4.12+                       | 72          |
| Node 11 | 4.10+, <5.0                 | 67          |
| Node 10 | 4.9+, <6.0                  | 64          |
| Node 8  | 4.5.3+, <5.0                | 57          |
| Node <8 | <5.0                        | <57         |

执行node --version指令,本机node版本为v16.16.0

查看项目的package.json,devDependencies中node-sass版本是4.12.0

根据上面的表格,确实存在不匹配。

 npm i node-sass@6.0.1  后就正常了

3、有时候线上出现下面的错误,通过增加下面一行代码就解决

//Comparison method violates its general contract!有时候出现这个错误加的,原因不明
        System.setProperty("java.util.Arrays.useLegacyMergeSort", "true");

那么问题来了。为什么上面代码在JDK6中运行无问题,而在JDK7中却会抛异常呢?这是因为JDK7底层的排序算法换了,如果要继续使用JDK6的排序算法,可以在JVM的启动参数中加入如下参数:

  1. -Djava.util.Arrays.useLegacyMergeSort=true  
-Djava.util.Arrays.useLegacyMergeSort=true

这样就会照旧使用JDK6的排序算法,在不能修改代码的情况下,解决这个兼容的问题。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁波阿成

你的支持,是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值