2015-04-28 119 views
3

我有一臺運行Java的遠程服務器,我有SSH訪問權限。 我正在寫一個應用程序在本地機器上,用maven構建它。 是否可以將IDE Itellij IDEA設置爲遠程運行我的項目?這個想法是:構建jar,將其複製到服務器,並調試進程(或類似的東西)。Intellij IDEA遠程調試Java控制檯程序

這將是很好的你分享我需要設置的設置。

回答

1

我認爲這是可能的,我可以用我用來部署我的應用程序的本地服務器做這樣的事情。而且由於您可以訪問服務器,所以它也適用於您。

你需要在IntelliJ中做的事情是創建一個遠程配置。爲此,請打開IntelliJ並在運行按鈕(左側)旁邊,應該有配置,用向下箭頭指定。點擊該箭頭並點擊編輯配置。一個新的窗口應該打開。點擊左上角的+標誌,並選擇遠程。應該出現一個新的窗口。我們現在需要設置服務器使用的主機和端口調試(如果您使用的是tomcat,通常是8000;在tomcat中,您可以通過使用文本編輯器打開catalina.bat文件並查找它爲JPDA_ADDRESS屬性,它允許您更改端口)。爲您的配置命名並按應用

之後,您需要以調試模式運行您的配置。您需要從配置列表中選擇它並按調試按鈕位於運行按鈕的右側。

更多細節在這裏:

http://blog.trifork.com/2014/07/14/how-to-remotely-debug-application-running-on-tomcat-from-within-intellij-idea/comment-page-1/

http://eclipse.org/jetty/documentation/current/debugging-with-intellij.html

http://www.javaranch.com/journal/200408/DebuggingServer-sideCode.html

我希望這有助於。

+0

我可能誤解了一些東西,但爲什麼我需要Tomcat的運行一個簡單的服務器端的「Hello World」控制檯程序。我也沒有發現任何提及到遠程服務器的ssh連接。 –

+0

我用tomcat作爲示例服務器。我的Tomcat是通過SSH連接的服務器。但是,我告訴你的應用程序適用於部署在該服務器上的應用程序,例如網絡檔案(.war文件)。我不確定你所要求的.jar文件可以做什麼(或者至少,我從來沒有遇到過這種情況)。無論哪種方式,這是您連接到遠程服務器以便從IntelliJ調試應用程序的方式。 – SSJVegito

8

這是我通常用來調試我的遠程應用程序。

  1. 在服務器上運行調試模式

    這可以加入這一行,當你運行你的應用服務器

    -Xdebug -Xrunjdwp:transport=dt_socket,server=n,suspend=n,address=9999 
    

    爲JDK以上1。4,你可以使用這個

    -agentlib:jdwp=transport=dt_socket,server=n,suspend=n,address=9999 
    

    之後,運行應用程序服務器

  2. SSH隧道

    我不是100%肯定,你可以,如果訪問到您的應用程序的端口直接你正在使用SSH連接(嗯,也許有一種方法;))。所以,首先我們需要通過運行這個命令來暴露我們在第一步設置的調試端口。

    ssh -f [email protected] -L 9999:personal-server.com:9999 -N 
    
  3. 設置IDE

    您可以按照步驟中@SSJVegito說,這主要是調試器指向端口9999打開在你的想法的調試配置,那麼盤旋值更改爲9999。然後,快樂的調試:d debug configuration

+0

我能夠得到它的工作,但像線程轉儲這樣的事情非常緩慢,並凍結應用程序,而我等待他們完成。凍結超過一秒鐘的應用程序對我來說是不可接受的。任何想法我能做些什麼來解決它? – Barteks2x