Java Eclipse中的端口已在使用8080错误提示,但它在运行时在web浏览器中的端口8080上工作
用于运行SpringMVC项目的是Eclipse版本:2020-03(4.15.0),使用Tomcat8.5。当我运行该项目时,它在控制台中显示“端口已在使用错误”,但当我在浏览器localhost:8080/上运行时,它可以工作。但当我查看Eclipse中的“服务器”部分时,它停止了,但我认为它是由我在pom.xml中包含的Spring引导配置管理的。服务器已经在8080端口启动了,如果我错了,请纠正我 我不知道Eclipse项目中“服务器”部分到底显示了什么,如果可能的话,我们如何将端口更改为Eclipse中的其他端口 有人能通过解释背景中实际发生的事情来帮助我理解这一点吗? bs:当我添加新服务器时,在工作区外创建了一个新的服务器文件夹。Java Eclipse中的端口已在使用8080错误提示,但它在运行时在web浏览器中的端口8080上工作,java,eclipse,spring-boot,pom.xml,spring-boot-maven-plugin,Java,Eclipse,Spring Boot,Pom.xml,Spring Boot Maven Plugin,用于运行SpringMVC项目的是Eclipse版本:2020-03(4.15.0),使用Tomcat8.5。当我运行该项目时,它在控制台中显示“端口已在使用错误”,但当我在浏览器localhost:8080/上运行时,它可以工作。但当我查看Eclipse中的“服务器”部分时,它停止了,但我认为它是由我在pom.xml中包含的Spring引导配置管理的。服务器已经在8080端口启动了,如果我错了,请纠正我 我不知道Eclipse项目中“服务器”部分到底显示了什么,如果可能的话,我们如何将端口更改
1.8
org.springframework.boot
弹簧启动装置
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧靴开发工具
运行时
真的
org.springframework.boot
弹簧起动试验
测试
org.junit.vintage
朱尼特老式发动机
org.springframework.boot
springbootmaven插件
遵循以下步骤:
-Dserver.port=8081
除了
8081
之外,您还可以输入任何其他端口号。遵循以下步骤:
-Dserver.port=8081
除了
8081
之外,您还可以放置任何其他端口号。手动转到localhost:8080会因为错误消息而起作用。另一个进程(很可能是Tomcat的另一个副本)已经在该端口上运行并侦听——这就是将响应发送回浏览器的过程。在第一个图像中显示的服务器编辑器的右侧可见端口部分。在这里,您可以更改从Eclipse启动的实例的端口号。手动转到localhost:8080会因为错误消息而起作用。另一个进程(很可能是Tomcat的另一个副本)已经在该端口上运行并侦听——这就是将响应发送回浏览器的过程。在第一个图像中显示的服务器编辑器的右侧可见端口部分。在这里,您可以更改从Eclipse启动的实例的端口号。有一个挂起的java进程侦听该端口
按端口查找进程并终止它
对于linux,您可以使用fuser-k8080/tcp
对于windowsnetstat-ano | findstr:PORT_NUMBER
获取PID,然后将其终止
除此之外,您还可以使用JavaVisualVM
跟踪机器上运行的所有java应用程序
有一个挂起的java进程在该端口上侦听 按端口查找进程并终止它 对于linux,您可以使用
fuser-k8080/tcp
对于windowsnetstat-ano | findstr:PORT_NUMBER
获取PID,然后将其终止
除此之外,您还可以使用JavaVisualVM
跟踪机器上运行的所有java应用程序
如果有人投票支持这个问题,我会很高兴,我觉得这是一个有效的问题,因为可能会出现一些混淆,比如嵌入式服务器与独立服务器,在将相关依赖项加载到类路径时的spring引导行为 如果有人投票支持这个问题,我会很高兴,所以我会继续更新我的个人资料
谢谢。如果有人投票支持这个问题,我会很高兴,我觉得这是一个有效的问题,因为可能会出现一些混淆,导致很多配置选项可用,例如嵌入式服务器与独立服务器,在将相关依赖项加载到类路径时,spring引导行为 如果有人投票支持这个问题,我会很高兴,所以我会继续更新我的个人资料
谢谢。好的,我花时间研究和尝试错误后找到了答案。感谢所有对这个问题做出贡献的人,这让我花更多的时间来理解这个问题。因为实际上我是从头开始创建spring项目的初学者。请容忍我 其实我想指出这些 1) 这个项目是从初始化的,这意味着它是基于spring引导的项目,而不是一个普通的spring MVC项目(带有那些.XML文件) 2) 我一直在一个嵌入式Tomcat服务器上运行它,在运行应用程序时,我应该遵循这个惯例。一种方法是
/mvnw-spring-boot:run
,另一种方法是通过/mvnw-clean-package
创建.JAR
文件并运行它
当我通过Eclipse运行应用程序时,我错误地连接了另一个Tomcat(独立)服务器。所以这是错误的
在这里,您可以看到,现在Eclipse中的“服务器”部分下没有显示服务器,但当我运行应用程序时,它会成功运行(请参阅控制台)并侦听默认端口8080,如果我想通过作为参数传递来更改端口的话。-Dserver.port=8081
或您建议的每一个其他选项。
非常感谢您提出的任何改进建议。如果您对我的发现感到满意,请投票
参考资料:
好的
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>