首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

远程调试作为Windows服务启动的Java应用程序

远程调试是指在不同的计算机上同时运行两个程序,一个是被调试的程序,另一个是调试器。通过调试器,可以观察和控制被调试程序的运行过程,从而找出程序中的错误并修复它们。

在本例中,我们需要远程调试一个在 Windows 服务中运行的 Java 应用程序。为了实现这一目标,我们可以使用 Java 的内置调试工具 jdb。

以下是使用 jdb 进行远程调试的步骤:

  1. 在启动 Java 应用程序时,添加以下参数:
代码语言:txt
复制
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

这将启动 Java 调试线程,监听 5005 端口,允许远程调试器连接。

  1. 在启动 Java 应用程序之后,启动 jdb 调试器,并连接到 Java 应用程序所在的计算机和端口。可以使用以下命令:
代码语言:txt
复制
jdb -connect com.sun.jdi.SocketAttach:hostname=<hostname>,port=5005

其中,<hostname> 是 Java 应用程序所在计算机的主机名或 IP 地址。

  1. 在 jdb 调试器中,可以使用各种命令来观察和控制 Java 应用程序的运行过程,例如:
  • stop in<classname>.<methodname>:在指定的类和方法中设置断点。
  • cont:继续执行程序,直到遇到下一个断点。
  • step:执行下一行代码,并在方法调用时进入该方法。
  • next:执行下一行代码,但不会在方法调用时进入该方法。
  • print<expression>:计算并打印指定表达式的值。
  • set<variable> =<value>:设置指定变量的值。
  1. 当找到错误并修复程序后,可以使用 exit 命令退出 jdb 调试器,并重新启动 Java 应用程序以测试修复是否成功。

总之,远程调试可以帮助开发人员诊断和修复 Java 应用程序中的错误,尤其是在 Windows 服务中运行的应用程序。使用 jdb 调试器可以实现对被调试程序的远程控制,从而更好地理解程序的运行过程并找出错误所在。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java远程调试Remote Debug

dt_shmem:共享内存传输,仅限于Windows平台。一般不用这种通信方式。 address:远程debug监听端口号。远程服务器要开放这个端口号,客户端才能远程连接上。...server:值为y或n,VM是否需要作为调试服务器执行。设置为y后该程序才能作为服务器被我们客户端(比如Eclipse)连接上。 suspend:值为y或n,是否在调试客户端建立连接之后启动VM。...Eclipse启用远程调试 Eclipse可以作为远程调试客户端,在debug菜单里打开Debug Configurations......Connection Type选择Standard(Socket Attach),Host填写远程调试服务地址,Port填写远程调试端口号。 最后点击Debug即可开始远程调试。...参考链接 java debug suspend_【Java远程debug】 Java远程调试 java -Xdebug各参数说明 请问JVM远程调试配置中为什么要配置-Djava.compiler=NONE

2.1K10

Windows服务器无法远程登录:远程桌面服务启动,默认端口未监听

问题描述 使用腾讯云Windows服务器时,无法远程桌面登录,可以通过控制台vnc登录。...[远程登录报错] VNC登录服务器可参考官网文档 检查远程桌面服务启动,但是端口未监听,如下图 [p058x818z3.png] [zja0as82n7.png] ---- 解决方案 方案一、远程已关闭...,判断方式如下 右击“此电脑”---> 属性 ---> 远程设置 ---> 将 “不允许远程连接到此计算器” 改为“允许远程连接到此计算器“,然后点击“应用” 和“确定”。...,你就会看到现在您服务器使用端口号(默认值是3389),这两个路径下值是一样。...[nchzkstcrh.png] 此时过滤33890端口是正常监听,如下图 [szxejhfs35.png] 远程登录时需要指定这里端口登录,在远程桌面程序输入 服务器公网IP:端口 即可登录。

19.9K41
  • VisualStudio 如何 SSH 远程调试 Linux dotnet 应用启动

    本文将告诉大家,如何使用 VisualStudio 2022 工具,通过 SSH 远程调试运行在 Linux 系统上 dotnet 系应用启动过程 本文写于 2024.06.07 如果你阅读本文时间距离本文编写时间过于长...,那本文可能包含过期知识 当前 VisualStudio 2022 不能和在 Windows 一样,在 Linux 上一键进入构建且调试。...只好通过远程调试方式进行附加,而附加进程时,可能所需调试是应用启动过程逻辑,这将导致调试附加过去时,应用已经跑过了启动逻辑,导致无法进行调试 尽管编写一个 VisualStudio 插件可以很好解决此问题...,然而现在我没有那么有空,本文将告诉大家一个简单方式,可以不依靠任何第三方工具,就使用现成 VisualStudio 即可实现远程调试运行在 Linux 系统上 dotnet 系应用启动过程 开始之前...,请参阅 UOS 开启 VisualStudio 远程调试 .NET 应用之旅 博客搭建好环境 在需要调试启动 dotnet 应用里面,在 Program Main 方法添加如下代码 while

    38710

    如何远程调试在K8S POD中Java应用程序

    使用 Intellij 附加远程调试器 要附加调试器,请转到 IDEA 右上角运行部分并添加远程 JVM 调试运行配置。 如图所见,上面显示命令行参数与我们指定为部署文件中环境变量值相同。...使用 VSCode 附加远程调试器 要使用 VScode 附加远程调试器,我们需要添加启动配置,如下所示 { "version": "0.2.0", "configurations": [...project "port": "5005" // port to attach to } ] } 要添加此启动配置,请转到左侧栏上“运行和调试”,然后单击顶部齿轮图标以打开...完成此操作后,启动配置,调试器将被附加。添加断点并在终结点上发送请求,以便调试器暂停执行,如下所示。...小结 本文介绍了如何打包 springboot docker 镜像,如何部署到 k8s 集群中, 以及如何通过 idea 或者 vscode 远程调试 k8s 集群中 java 应用程序

    2.4K50

    Java远程调试(Remote Debugging)那些事

    JVM 激活远程调试启动参数有 JPDA_OPTS, CATALINA_OPTS 和 JAVA_OPTS。...$CATALINA_HOME/bin/catalina.sh jpda start 2 使用 JAVA_OPTS / CATALINA_OPTS 如果你是在 Windows 系统把 Tomcat 作为系统服务来运行...y,suspend=n 请确保每一条配置都是新行,参数选项之间没有空格 但如果Tomcat没有作为 Windows 系统服务, 启用方法与前面类似,在 setenv.bat 文件中写入: set CATALINA_OPTS.../catalina.sh start 3 使用JPDA启动 最后一种启用远程调试方式是用 JPDA 切换, 用如下启动命令将使用默认值自动启用远程调试, catalina jpda start 该命令默认使用设置是...保存后,开始 debug 启动远程调试,如果运行成功会显示如下界面,然后在源码加断点开始调试

    8.3K20

    Visual Studio 调试系列12 远程调试部署在远程计算机IIS上ASP.NET应用程序

    调试已部署到IISASP.NET应用程序,请在部署应用程序计算机上安装并运行远程工具,然后从Visual Studio附加到正在运行应用程序。 ?...本文包括在Windows服务器上设置IIS基本配置以及从Visual Studio部署应用程序步骤。包括这些步骤以确保服务器已安装所需组件,应用程序可以正确运行,以及您已准备好进行远程调试。...如果在 IIS 中运行您应用程序,并且只是想要下载远程调试器和启动调试,请转到下载并安装 Windows Server 上远程工具。...》 11 设置 Windows Server 上远程调试器 参考《Visual Studio 调试系列11 远程调试》 12 从 Visual Studio 计算机附加到 ASP.NET 应用程序...若要打开 Windows 服务器上端口,请打开启动菜单中,搜索高级安全 Windows 防火墙。 然后选择入站规则 > 新规则 > 端口。

    3.9K10

    使用Java Service Wrapper设置tomcat作为linux服务并且开机自动启动

    前几天总结了使用JSVC来设置tomcat作为linux服务并且开机自动启动,但是如果要更专业一点来控制tomcat启动,使用Java Service Wrapper应该不失为一个好选择,下面来总结一下...Java Service Wrapper在Linux中对于tomcat启动设置: 1、安装JDK、Tomcat,此处略过。...# Initial Java Heap Size (in MB) # 设置tomcatJVM初始化堆大小 wrapper.java.initmemory=128 # Maximum Java...AUTO_START or DEMAND_START # 设置允许Tomcat服务自动启动 wrapper.ntservice.starttype=AUTO_START # Allow the service...Service Wrapper来设置Tomcat作为Linux服务完成,从此过程看来,Java Service Wrapper对tomcat控制程度比tomcat自带JSVC深入多了。

    1.5K20

    VisualVM监控远程主机上JAVA应用程序

    使用VisualVM监控远程主机上JAVA应用程序时,需要开启远程主机上远程监控访问,或者在远程JAVA应用程序启动时,开启远程监控选项,两种方法,选择其中一种就可以开启远程监控功能,配置完成后就可以在本地对远程主机上...JAVA应用程序进行监控。...1.远程服务器、应用程序配置 1.1配合jstatd工具提供监控数据 1.1.1创建安全访问文件 在JAVA_HOME/bin目录中,创建名称为jstatdAllPolicy文件(这个文件名称也可以顺便起.../lib/tools.jar"{ permission java.security.AllPermission; }; 1.1.2启动jstatd服务JAVA_HOME/bin目录中,执行以下命令:...如果一切正常,就可以看到远程主机上JAVA应用程序了。

    2.6K20

    windows启动mysql服务命令行启动和手动启动方法

    今天遇到mysql服务无法启动,上网一查很多人也遇到mysql服务启动不了问题, 所以就索性整理了 windows启动mysql服务命令行启动和手动启动方法文章,以便各位遇到同类问题朋友进行参考...在图形界面下启动mysql服务步骤如下:     (1)打开控制面板-->性能和维护->性能和维护管理工具->服务,如下图所示:     可以看到Mysql服务目前状态是未启动(未写已启动都是未启动状态...),在对应行双机打开小窗口如下:    点击按钮“启动”则进行mysql服务启动,这时候会显示已启用,刷新服务列表也会显示出来已启用状态,这样就通过图形界面完成了mysql服务启动。    ...关闭的话,点击这个小窗口停止按钮即可进行服务关闭。     2、命令行下启动mysql服务。    ...以上就是通过windows启动mysql服务命令行启动和手动启动方法和步骤,希望对大家有所帮助。

    4.5K20

    Windows系统部署GoLand结合内网穿透实现SSH远程Linux服务器开发调试

    GoLand是由JetBrains推出一款专为Go语言开发设计集成开发环境(IDE)。它集成了多种高级功能,包括但不限于智能代码补全、代码分析和高级调试功能。...服务器开启SSH服务服务器端获取IPv4 地址 ip addr show 开启SSH服务,执行 sudo apt-get install openssh-server 启动SSH服务 sudo service...安装cpolar内网穿透远程访问服务器端 4.1 服务器端安装cpolar 本地测试完成后,我们需要在服务器上安装cpolar内网穿透工具,通过cpolar 转发本地端口映射公网地址,我们可以很容易实现远程访问...sudo systemctl enable cpolar 启动cpolar服务 sudo systemctl start cpolar cpolar安装成功后,在外部浏览器上访问Linux 9200...可以看到使用cpolar生成固定公网地址远程连接服务器端成功 我们已经能够使用永久固定地址来远程操作服务器,这样就可以在任意地点远程使用服务器进行办公,大大提高了工作效率!

    24621

    Windows服务快速搭建与调试(C#图解)

    目录 一、什么是Windows 服务? 二、创建Windows 服务与安装/卸载批处理。 三、调试Windows 服务。 正文 一、什么是Windows 服务?...答:Microsoft Windows 服务(即,以前 NT 服务)使您能够创建在它们自己 Windows 会话中可长时间运行可执行应用程序。...这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作其他用户,需要长时间运行功能时使用。.../u F:\xxx\xxx.exe 三、调试Windows服务。...打开Visual Studio 2010工具栏中工具 => 附加到进程 => 点击确定,选择列表中调试服务名称 => 点击附加就可以调试了。

    2.1K80

    Windows开机自启动运行Javajar包

    1 直接打开电脑目录(记得勾选查看隐藏项目) C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 在该目录下新建web-start.bat...,命名可自定义即可,如:xxxx.bat,但必须以.bat结尾 2 web-start.bat里面的内容如下 @echo off setlocal set appName=C:/MyProgram/java-service...可以用jps命令查看程序pid; (3)jar包启动JVM参数可根据自己实际情况进行调整; (4)编辑好命令后,双击运行保证能够正常运行。...3 开机或者重启测试 在完成前面的步骤后,这样就能在开机后直接启动jar包了。 我们重新启动电脑,看是否会开机自启动。 开机后会出现cmd命令行窗口。..."Start C:/MyProgram/java-service/web-core.jar ..." 请按任意键继续. . 然后通过任务管理器或者jps命令查看服务是否启动

    3.5K10

    遇到问题该如何调试,远程服务也能管控 | Java Debug 笔记

    今天我们福利来了确切说是idea待着福利走来了问题描述====某个夜晚我们正在上线,测试反馈说某个业务不正常然后我们本地抓紧调试同样数据配置同样操作本地打了多次断点调试都没有发现异常我还在焦头烂额时候...,我技术经理走了过来跟我说到你为什么不用idea远程调试工具呢?...随即,展开了idea远程调试百度搜索页面idea配置打开idea中run/debug configurations, 选择remote类型,地址配置为服务器地址,端口配置为上述配置参数中address...既然是远程调试我们就必须保证本地和待调试那个环境代码一模一样。正常情况下我们就是重新上个包。然后本地通过新开端口借助idea进行打断点调试缺陷==线上原则上会收到严格管控。...从而影响使用另外就是开发者问题了,如果因为开发者在调试期间执行多次某个代码可能对线上造成脏数据总结==任何事情都有两面性。首先远程调试是为了方便开发者。方便同时也带来其他问题。

    14610

    适用于 Windows 快速文件搜索和应用程序启动

    使用可自定义热键立即触发搜索窗口。 ※ 默认热键为Alt+空格键 特征 计算器 进行数学计算,然后将结果复制到剪贴板以备后用。 Windows 设置 搜索“窗口”和“控制面板”设置。...插件商店 浏览并安装许多不同类型插件以添加新搜索功能。 打开应用程序 快速搜索和启动应用程序。 搜索文件 使用“一切”或 Windows 搜索查找文件和文件内容。...网络搜索 使用您最喜欢搜索引擎浏览互联网。 搜索书签 快速查找来自不同浏览器书签。 系统命令 重新启动,睡眠或关机,只需击几下键盘即可管理计算机。...Windows 设置 搜索“窗口”和“控制面板”设置。 插件商店 浏览并安装许多不同类型插件以添加新搜索功能。 打开应用程序 快速搜索和启动应用程序。...搜索文件 使用“一切”或 Windows 搜索查找文件和文件内容。 网络搜索 定制 不同主题、动画和声音,或者只是构建你自己

    10110

    .NET开源免费Windows快速文件搜索和应用程序启动

    前言 今天大姚给大家分享一款.NET开源(MIT License)、免费、功能强大Windows快速文件搜索和应用程序启动器:Flow Launcher。...工具介绍 Flow Launcher 是一款方便实用 Windows 文件搜索和应用程序启动器,能够帮助你快速查找文件、启动应用程序和执行系统操作,提高工作效率和操作便利性。...并且生态完善,有插件商店,你可以查看完整插件列表,或通过 "设置 "中 "插件商店 "菜单快速安装插件。 支持语言 支持拼音搜索。 支持从中文、英文、意大利语等多种语言。...C 复制当前文件夹/文件 Ctrl+I 打开流程设置 Ctrl+R 再次运行当前查询(刷新结果) F5 重新加载所有插件数据 Ctrl+F12 在搜索窗口中切换游戏模式 Ctrl++,- 快速更改显示最大结果数...坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀项目和框架不被埋没)。

    12810

    Windows WPF 开发 调试应用程序在什么时机加载了 Dll 模块

    在尝试优化性能时候,如何可以了解到在应用程序启动过程中,在什么步骤开始加载了某些 Dll 文件 在 VisualStudio 调试->窗口->模块 可以看到当前应用程序加载所有模块,也就是应用程序加载了哪些...Dll 文件 一个调试方法是在合适逻辑里面添加断点,或者在软件启动完成之后,通过模块了解应用程序加载了哪些 DLL 文件,从而了解应用程序启动慢是否因为加载了不应该加载模块 在 dotnet 里面...,可以通过辅助代码了解是在哪些模块加载了 DLL 文件,例如我在调试 SVG 库 是在哪个模块加载,我不期望在启动过程中有加载 SVG 相关 DLL 文件,那么我可以如何了解到是在应用程序哪个逻辑里面加载...通过调用堆栈,可以了解到是在访问到哪个业务逻辑需要加载,然后再调试这个业务逻辑是否需要放在启动过程 ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com.../post/Windows-%E4%B8%8B%E7%9A%84-WPF-%E5%BC%80%E5%8F%91-%E8%B0%83%E8%AF%95%E5%BA%94%E7%94%A8%E7%A8%8B

    59630

    黑科技:Java程序跑在远程服务器,竟然可以本地打断点调试

    程序部署在云服务器,出了问题无法调试,怎么办?看下面的黑科技,程序在云端跑,断点打在本地,访问远程接口,立马进入本地代码断点处。 1.配置远程断点 ? ? ? ?...2.将你spring boot项目上传至远程服务器 3.在你远程服务器通过下面的命令启动项目 nohup java -Xdebug -agentlib:jdwp=transport=dt_socket...nohup.log 2>&1 & 注意-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005就是上面配置断点时IDEA给你生成。...4.同时启动本地项目,在你本地代码处打断点 ? 启动本地项目 ? 在本地项目打断点 5.访问远程服务接口 ? 访问远程接口 6.单击发送,进入本地代码断点 ?...进入本地断点调试 哈哈哈,跑远程代码,进入是本地断点,这样可以很方便调试运行环境代码!6666 注意,必须保证你本地代码和远程服务代码一致哦

    2.4K22
    领券