我有一個Python代碼,我使用IntelliJ運行。 Python代碼將執行一個java
命令,該命令最終會產生一個JVM。 Python和JVM使用Py4J和自定義套接字進行通信。如何使用IntelliJ連接到JVM進行調試?連接到JVM以進行由Python腳本產生的調試
2
A
回答
1
我假設你的Python代碼使用os.system
調用產生了java
命令。如果你想從你的IDE調試它,那麼你應該點亮在催生JVM調試(見可能的選項this話題,使JVM調試):
os.system("java -jar your.jar -Xdebug -Xrunjdwp:server=y, transport=dt_socket,address=4000, suspend=y");
在上面的代碼中衍生的JVM將偵聽端口4000
用於傳入調試器連接。現在,您可以使用InteliJ remote debug configuration功能使用提供的端口連接到衍生的JVM。請注意參數suspend=y
參數 - 這意味着JVM將在調試器連接之前暫停啓動。這可以防止您錯過您想要調試的有趣的JVM執行部分,或者在主線程完成之後JVM退出時甚至可以啓動InteliJ遠程調試會話時阻止該情況。
1
您執行生成帶有調試參數的JVM的java命令。
I.e. -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
。
然後在IDE中創建一個新的遠程連接。 事實上,當你去創建一個新的,當你指定的主機和端口它已經給你一個參數,如:
命令行參數運行遠程JVM:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
相關問題
- 1. ld連接器腳本產生巨大的二進制文件
- 2. 連接到wifi後運行python腳本
- 3. 可以產生Postgresql進程由spawner PHP腳本控制嗎?
- 4. 腳本調試程序無法連接到目標進程。 Adebugger已經連接
- 5. 是否可以在連接到Windows的iPhone上進行調試?
- 6. 將配置從mod_wsgi移動到腳本以進行調試
- 7. 連接到jvm
- 8. ssh連接到一個帶有python腳本的路由器
- 9. 由JPA產生的空連接表ManyToMany
- 10. 在生產中繞過@Cacheable註解以進行調試
- 11. 我可以產生附加到正在運行的調試器的進程嗎?
- 12. 以Python腳本在SSH中連接
- 13. 以調試模式連接的資產資產集合
- 14. 由另一個產生的調試進程
- 15. 連接Android設備進行調試
- 16. 連接設備進行調試與Android?
- 17. 不能附加調試器HTTP JVM,AMGR JVM連接代替
- 18. pycharm不能運行腳本,但可以對其進行調試
- 19. 調試 - IntelliJ無法連接到遠程服務器上啓用調試的JVM
- 20. PHP:SSH連接和python腳本執行
- 21. 我可以在不同的進程中連接到JVM嗎?
- 22. 測試使用子進程產生bash子shell的python腳本..有可能嗎?
- 23. 如何找到由Python產生的進程的名稱?
- 24. 如何調試django,它產生了一個我沒有連接的新進程?
- 25. Python腳本鎖定在VS 2015中進行調試
- 26. rake資產:預編譯嘗試連接到生產數據庫?
- 27. 着運行測試的Node.js的http腳本:未找到連接
- 28. 傳遞輸入到由shell腳本調用Python腳本
- 29. Python腳本來查詢谷歌地圖,並得到由此產生的URL
- 30. vim和python腳本調試