写在前面
记录工作和学习遇到的技术问题,以求再次遇到可以快速解决。
1:Ubuntu TSL换源报错:Err:1 http://mirrors.aliyun.com/ubuntu focal InRelease
执行如下操作(已经操作的则忽略)
,首先在文件/etc/apt/sources.list
中增加如下内容:
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
然后在文件/etc/resolv.conf
中增加如下内容:
nameserver 8.8.8.8
nameserver 114.114.114.114
最后执行如下命令:
sudo apt-get update
sudo apt-get upgrade
2:idea启动项目提示端口占用
有时候当我们使用Tomcat启动web项目时,会提示端口占用,导致启动失败,可能出现端口冲突的配置如下图:
有时候确实是端口占用,有时候端口实际是并没有占用的,接下来我们一起看下不同情况下该如何处理。
2.1:端口实际被占用
这种情况比较好处理,直接找到占用端口的进程,然后kill就行了,具体可以参考window查找端口占用并杀死进程 。
2.2:端口并没有被占用
首先可以考虑是因为Java程序异常终止,但是进程并没有完全释放导致,此时可以打开资源管理器,找到所有的java.exe
,然后强制结束任务,如下图:
如果依然不行,可以考虑是否因为开启了hyper v虚拟化,此时使用的端口段将无法被使用,可以使用命令netsh interface ipv4 show excludedportrange protocol=tcp
查看是否为这种情况:
如果是这种情况,修改为不在保留端口范围内的其他端口号即可。
3:启动服务提示端口占用
3.1:首先找到端口进程
这里以端口号1099
为例说明。
C:\Users\Administrator>netstat -ano | findstr "1099"
TCP 0.0.0.0:1099 0.0.0.0:0 LISTENING 17412
TCP [::]:1099 [::]:0 LISTENING 17412
可以看到占用的进程号是17412
。
3.2:杀掉进程
这里杀死第一步骤查到的进程号17412
。
C:\Users\Administrator>taskkill -PID 17412 -F
成功: 已终止 PID 为 17412 的进程。
4:sudo unable to resolve host test : Name or service not known
这种错误一般是因为我们通过编辑/etc/hostname
修改了主机名,但是没有在/etc/hosts
配置对应的127.0.0.1 hostname
的映射,进行配置即可,如下图:
5:ERR unknown command CONFIG
一般是Redis服务器处于安全考虑禁用了该redis命令,如下注释掉rename-command即可:
生产环境,keys,flushDB,flushAll等耗费大量资源以及会删除大量数据的命令,处于安全考虑一般会进行rename。
6:idea普通模式可以启动但是debug模式无法启动
可能是有断点,将断点全部删除,然后再尝试,应该就没问题了。
7:idea各种乱码(console,maven,tomcat等)
统一u8,如下检查:
7.1:系统设置为u8
7.2:设置idea
File->Setting
:
7.3:设置maven
设置<encoding>UTF-8</encoding>
后,相当于执行javac -encoding utf-8 xxx.java
,即告诉Maven,用u8给我编译源文件。
xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
8:Maven 执行命令报错resolution will not be reattempted until the update inter val of public has elapsed or updates are forced
这种错误一般是因为Maven没有更新老的jar包导致(默认一天更新一次)
,可采用如下两种方式,即命令行更新(建议这种)
,每次更新(不建议,因为老的jar一般是不动的,每次更新会增加时间消耗)
:
1:命令行更新
mvn clean install -U
2:每次更新
<repositories>
<repository>
<id>xr-snapshots</id>
<url>http://nexus.alibaba.com/repository/snapshots/</url>
<snapshots>
<enabled>true</enabled>
<!-- 注意 -- >
<updatePolicy>always</updatePolicy>
</snapshots>
<releases>
<enabled>false</enabled>
<!-- 注意 -- >
<updatePolicy>always</updatePolicy>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>xr-plugins</id>
<name>xingren plugins</name>
<url>http://nexus.alibaba.com/repository/public/</url>
<releases>
<enabled>true</enabled>
<!-- 注意 -- >
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<!-- 注意 -- >
<updatePolicy>always</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
9:idea Error:(3, 38) java: 程序包org.springframework.stereotype不存在
按照如下步骤设置:
执行mvn idea:idea
:
10:javac编译输出结果乱码
如下乱码:
D:\test>D:\\program_files\\many_version_jdk\\jdk1.8.0_202\\bin\\javac encoding utf-8 GCLogAnalysis.java
javac: Чı: utf-8
÷: javac <options> <source files>
-help гܵѡ
一般指定编译器使用u8编码即可,如下:
D:\test>D:\\program_files\\many_version_jdk\\jdk1.8.0_202\\bin\\javac -encoding utf-8 GCLogAnalysis.java
D:\test>
11:java命令执行乱码
如下:
D:\test>java GCLogAnalysis
ִ...
ִн!ɶ:18523
通过-Dk=v
配置编码,如下:
D:\test>java -Dfile.encoding=utf-8 GCLogAnalysis
正在执行...
执行结束!共生成对象次数:18915
12:idea导入项目后没有被识别为maven项目的解决办法
- 1、首先点击工具栏最左边的 Help 再点击 Find Action ;
- 2、接着在输入框中输入 maven projects ,会弹出一个 Add Maven Projects 选项,点击即可,会弹出下图的弹窗
- 3:选择本项目的 pom.xml 点击 OK 即可解决!
点鸡 。
13:idea导入项目后卡在reading pom.xml
如果是项目中有如下的文件:
因为要下载maven-wrapper.properties文件中的内容,而下载太慢导致问题发生,考虑如下方法解决:
1:如果允许,一般直接删除.mvn就行
2:开代理,加速下载速度
14:springboot pom parent被占用了
常规这样配置的:
xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.10.RELEASE</version>
</parent>
如果是因为maven的父子项目导致parent被占用,可以这样子配置:
xml
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.10.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
15:Git解决Filename too long的问题
git config --global core.longpaths true
16:idea plugins搜不到插件
点鸡 。
17:IDEA不编译src/main/java目录下的xml/properties文件的解决办法
默认不编译,在pom中显示指定即可,如下:
xml
<build>
<resources>
<!-- 表示编译java源码时,包含src/main/java和src/main/resources目录下的xml、properties一起 -->
<!--如果mapper.xml在src/main/java目录下,就必须做这个配置,不然编译后会丢弃mapper.xml文件-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
18:解决github打不开的方法(亲测有效)
19:intellij idea 启动报错 java.util.concurrent.CompletionException: java.net.BindException: Address already
intellij idea 启动报错java.util.concurrent.CompletionException 。
20:idea导入项目后没有被识别为maven项目的解决办法
参考文章 。
21:idea总是不自动编译
如下步骤检查:
22:Error running 'form': Unable to open debugger port (127.0.0.1:30371): java.net.BindException "Address already in use: NET_Bind"
23:parallelStream丢数据问题
程序如下:
// 过滤当前存在自己办理任务的
List<Task> nowTodoTaskList = taskService.createTaskQuery().taskAssignee(taskUserId).list();
Set<String> nowTodoInstanceSet = new HashSet<>();
nowTodoTaskList.parallelStream().forEach(v -> nowTodoInstanceSet.add(v.getProcessInstanceId()));
nowTodoTaskList
有n条数据,有时会出现nowTodoTaskList结果小于n的的情况,但大部分时候都是等于n的,怀疑是底层JUC多线程程序有bug,将nowTodoTaskList.parallelStream().forEach...
改为nowTodoTaskList.stream().forEach
解决问题。
24:Maven导入的项目不显示为模块
25:nacos报错 tried: ErrCode:503, ErrMsg:server is DOWN now, please try again later!
26:安装idea 点击next没反应?
别着急,让子弹再飞一会,点击后不要动等个35分钟就好了!!!
27:idea报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
一般是jdk版本问题,设置各处版本为8,包括但不限于如下位置:
最后需要在插件中设置版本号为8,如下:
xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
还不行的话,就去仓库里把对应的依赖文件夹删除掉,重新import。一般就行了,其实这也属于因为maven的问题导致找不到依赖而报错,所以,其他的类似下载不着依赖的问题也可以尝试通过这种方法来解决掉。
参考文章 。
idea的Maven配置问题:Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:2.5 。
28:telnet不通(防火墙问题)
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl status firewalld.service
systemctl disable firewalld.service
使用vim /etc/sysconfig/selinux,将SELINUX=enforcing改为SELINUX=disabled。
最后重启。
参考 。
29:maven引入成功但找不到依赖(爆红
)
首先尝试设置:
不行的话,再尝试:
30:idea pom.xml显示删除线
首先操作如下:
最后,没好的话,重启idea
。
31:项目启动总是nacos但实际没有使用
在启动springboot项目时报如下的错误:
2023-12-11 17:10:23.028 ERROR 19472 --- [ main] c.a.c.n.registry.NacosServiceRegistry : nacos registry, coupon-customer-serv register failed...NacosRegistration{nacosDiscoveryProperties=NacosDiscoveryProperties{serverAddr='localhost:8848', endpoint='', namespace='', watchDelay=30000, logName='', service='coupon-customer-serv', weight=1.0, clusterName='DEFAULT', group='DEFAULT_GROUP', namingLoadCacheAtStart='false', metadata={preserved.register.source=SPRING_CLOUD}, registerEnabled=true, ip='192.168.10.47', networkInterface='', port=20003, secure=false, accessKey='', secretKey='', heartBeatInterval=null, heartBeatTimeout=null, ipDeleteTimeout=null}},
但实际上在项目中是没有使用nacos的,pom:
执行命令mvn dependency:tree
查看依赖树也确实没有nacos的起步依赖,如下:
但
,凡事有个但
,但在idea中确实显示有nacos依赖。
通过上面查看代码配置和依赖树可以确定是idea自己的问题可能是缓存之类的问题吧
,所以执行reimport,重新导入maven项目和依赖就行了,如下:
再看
:
32:IDEA报错:Project 'org.springframework.boot:spring-boot-starter-parent:2.3.6.RELEASE' not found
一般是由于idea缓存造成,invalidate cache并重启即可。
33:maven 打包问题(repackage failed: Unable to find main class)
这是因为maven打包的时候会默认去找main函数,而有时我们只是提供一些规范性的jar包,本来就不需要使用main函数,这个时候对这种项目或者是模块打包就会有这种错误,处理方法是显式的配置maven-plugin不让它去找main:
红框中的内容。
maven 打包问题(repackage failed: Unable to find main class) 。
34:每次新建的maven项目都要重新设置maven
只需要设置新建项目时的设置信息就行,如下:
35:Fatal error compiling: 无效的标记: --release -> [Help 1]
一般是jdk版本原因,检查如下的位置们
:
也可能是pom文件中设置了jdk的版本,也可以检查下。当然每一步操作你都要先clean下再尝试是否解决问题。