Intellij IDEA远程调试java控制台程序

Intellij IDEA远程调试java控制台程序,java,intellij-idea,ssh,Java,Intellij Idea,Ssh,我有一个运行Java的远程服务器,我有SSH访问权限。 我正在本地机器上编写一个应用程序,用maven构建它。 是否可以将IDE Itellij思想设置为远程运行我的项目?其思想是:构建jar,将其复制到服务器,并调试流程(或类似的事情) 很高兴您能分享我需要设置的设置。我认为这是可能的,我可以使用本地服务器来部署我的应用程序。既然您可以访问服务器,那么它也应该适合您 在IntelliJ中需要做的是创建一个远程配置。为此,打开IntelliJ,在run按钮旁边(左侧),您应该有一个向下箭头指定的

我有一个运行Java的远程服务器,我有SSH访问权限。 我正在本地机器上编写一个应用程序,用maven构建它。 是否可以将IDE Itellij思想设置为远程运行我的项目?其思想是:构建jar,将其复制到服务器,并调试流程(或类似的事情)


很高兴您能分享我需要设置的设置。

我认为这是可能的,我可以使用本地服务器来部署我的应用程序。既然您可以访问服务器,那么它也应该适合您

在IntelliJ中需要做的是创建一个远程配置。为此,打开IntelliJ,在run按钮旁边(左侧),您应该有一个向下箭头指定的配置。单击该箭头,然后单击编辑配置。应该会打开一个新窗口。单击左上角的+符号,然后选择远程。此时将出现一个新窗口。我们现在需要设置服务器用于调试的主机和端口(如果您使用的是tomcat,它通常是8000;在tomcat中,您可以通过使用文本编辑器打开catalina.bat文件并查找JPDA_ADDRESS属性来找到它,该属性允许您更改端口)。为您的配置命名,然后按应用

之后,您需要在调试模式下运行配置。您需要从配置列表中选择它,然后按下运行按钮右侧的调试按钮

详情如下:


我希望这能有所帮助。

这是我调试远程应用程序时通常做的事情

  • 在调试模式下运行服务器

    这可以在运行应用程序服务器时添加此特定行

    -Xdebug -Xrunjdwp:transport=dt_socket,server=n,suspend=n,address=9999
    
    对于1.4以上的JDK,您可以使用

    -agentlib:jdwp=transport=dt_socket,server=n,suspend=n,address=9999
    
    之后,运行应用服务器

  • -Xdebug -Xrunjdwp:transport=dt_socket,server=n,suspend=n,address=9999
    
  • SSH隧道

    如果使用ssh连接,我不能100%确定您是否可以直接访问应用程序的端口(嗯,也许有一种方法;)。因此,首先,我们需要公开在第一步中通过运行此命令设置的调试端口

    ssh -f user@personal-server.com -L 9999:personal-server.com:9999 -N
    
  • 设置IDE

    您可以遵循@SSJVegito所说的步骤,基本上就是将调试器指向端口9999。在Idea中打开调试配置,然后将带圆圈的值更改为9999。然后,快乐调试:D


  • 我可能误解了什么,但是为什么我需要Tomcat来运行一个简单的服务器端“hello world”控制台程序呢。我也没有发现任何关于ssh连接到远程服务器的内容,我使用tomcat作为示例服务器。我的Tomcat是您通过SSH连接到的服务器。但是,我告诉您的内容适用于部署在该服务器上的应用程序,例如web归档(.war文件)。我不确定您所请求的是否可以用于.jar文件(或者至少,我从未遇到过这种情况)。无论哪种方式,这都是连接到远程服务器以便从IntelliJ调试应用程序的方式。我能够让它工作,但获取线程转储等操作非常缓慢,在我等待它们完成时冻结应用程序。申请冻结超过一秒钟对我来说是不可接受的。知道我能做些什么来修复它吗?