工作和学习遇到的技术问题

写在前面

记录工作和学习遇到的技术问题,以求再次遇到可以快速解决。

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打不开的方法(亲测有效)

解决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下再尝试是否解决问题。

参考文章列表

Git解决Filename too long的问题

相关推荐
Mephisto.java6 分钟前
【大数据学习 | Spark-Core】Spark提交及运行流程
大数据·学习·spark
PandaCave31 分钟前
vue工程运行、构建、引用环境参数学习记录
javascript·vue.js·学习
yuwinter36 分钟前
鸿蒙HarmonyOS学习笔记(2)
笔记·学习·harmonyos
red_redemption1 小时前
自由学习记录(23)
学习·unity·lua·ab包
幽兰的天空1 小时前
默语博主的推荐:探索技术世界的旅程
学习·程序人生·生活·美食·交友·美女·帅哥
沐泽Mu2 小时前
嵌入式学习-C嘎嘎-Day05
开发语言·c++·学习
你可以叫我仔哥呀2 小时前
ElasticSearch学习笔记三:基础操作(一)
笔记·学习·elasticsearch
脸ル粉嘟嘟2 小时前
GitLab使用操作v1.0
学习·gitlab
路有瑶台2 小时前
MySQL数据库学习(持续更新ing)
数据库·学习·mysql
zmd-zk3 小时前
flink学习(2)——wordcount案例
大数据·开发语言·学习·flink