我在Eclipse中调试后得到此错误.但调试成功了.
ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): [../../../src/share/back/util.c:820]
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
我一直试图用JRebel运行这个配置:


这是我的输出:
c:\JBOSS\jboss-portal-2.7.2\bin\run.bat -c default
c:\JBOSS\jboss-portal-2.7.2\bin>set JAVA_OPTS=-Dhttp.proxyHost=188.173.32.78 -Dhttp.proxyPort=3128 -DproxySet=true
===============================================================================
JBoss Bootstrap Environment
JBOSS_HOME: c:\JBOSS\jboss-portal-2.7.2
JAVA: C:\Program Files\Java\jdk1.6.0_25\bin\java
JAVA_OPTS: -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -Dhttp.proxyHost=188.173.32.78 -Dhttp.proxyPort=3128 -DproxySet=true -Dprogram.name=run.bat -server -Xms256m -Xmx512m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000
CLASSPATH: C:\Program Files\Java\jdk1.6.0_25\lib\tools.jar;c:\JBOSS\jboss-portal-2.7.2\bin\run.jar
===============================================================================
[2012-07-16 12:32:53,968] Artifact app-ear:ear: Artifact is being deployed, please wait...
[2012-07-16 12:32:53,972] Artifact my-portlet:war: Artifact is being deployed, please wait...
Connected to server
[2012-07-16 12:32:54,007] Artifact app-ear:ear: Artifact is deployed successfully
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
ERROR: transport error 202: …Run Code Online (Sandbox Code Playgroud) 我需要调试已安装在手机上的Android应用程序.我能够在调试模式下启动应用程序,但我无法使用JDWP 连接到该进程.我尝试了两种不同的方法都失败了.(见以下部分)
命令行尝试
1-启动应用程序
[...]sdk\platform-tools>adb -d shell am start -D -n "package/package.SomeActivity"
Run Code Online (Sandbox Code Playgroud)
应用程序启动并显示警告"/!\ Waiting for debugger".
2-打开JDWP端口
[...]sdk\platform-tools>adb forward tcp:8000 jdwp:7602
Run Code Online (Sandbox Code Playgroud)
3-尝试使用jdb连接
[...]sdk\platform-tools>jdb -attach 127.0.0.1:8000
java.io.IOException: shmemBase_attach failed:
at com.sun.tools.jdi.SharedMemoryTransportService.attach0(Native Method)
at com.sun.tools.jdi.SharedMemoryTransportService.attach(SharedMemoryTransportService.java:108)
at com.sun.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:116)
at com.sun.tools.jdi.SharedMemoryAttachingConnector.attach(SharedMemoryAttachingConnector.java:63)
at com.sun.tools.example.debug.tty.VMConnection.attachTarget(VMConnection.java:519)
at com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java:328)
at com.sun.tools.example.debug.tty.Env.init(Env.java:63)
at com.sun.tools.example.debug.tty.TTY.main(TTY.java:1066)
Fatal error:
Unable to attach to target VM.
Run Code Online (Sandbox Code Playgroud)
IntelliJ尝试
我已配置我的本地项目以启动默认活动并取消选中"部署应用程序".
我也使用相同的警报启动应用程序,但不幸的是IDE没有连接到远程进程.
Target device: 42f7cc14e2acbfab
Launching application: ********/********.SomeActivity.
DEVICE SHELL COMMAND: am start -D -n "********/********.SomeActivity"
Starting: Intent { cmp=********/********.SomeActivity }
Waiting for …Run Code Online (Sandbox Code Playgroud) 我花了最后4个小时尝试在必须远程运行的Tomcat实例上设置Eclipse TPTP内存分析(即不在Eclipse中).根据TPTP和代理控制器文档,这应该是可能的.
我根据网站上的说明将TPTP组件(4.6.0)安装到我的Eclipse(Galileo)工作台以及代理控制器中.为了启用代理,我在启动Tomcat实例的命令行中添加了以下选项:
-agentlib:JPIBootLoader=JPIAgent:server=enabled;HeapProf:allocsites=true
Run Code Online (Sandbox Code Playgroud)
并将以下目录添加到PATH的前面:
D:\dev\tools\ac\plugins\org.eclipse.tptp.javaprofiler
D:\dev\tools\ac\bin
Run Code Online (Sandbox Code Playgroud)
尝试启动Tomcat时,我始终收到以下错误消息:
ERROR: JDWP unable to get necessary JVMTI capabilities. ["debugInit.c",L279]
Run Code Online (Sandbox Code Playgroud)
我做了很多谷歌搜索,但发现没有相关性; 我尝试重新安装TPTP和各种版本的代理控制器.
最后问题结果是我用"jpda"选项启动Tomcat,catalina.bat转换为
-Xdebug -Xrunjdwp:transport=.....
Run Code Online (Sandbox Code Playgroud)
删除"jpda"命令参数导致JVMTI开始工作.
所以,问题是:我在任何搜索过程中都没有发现任何内容,表明JVMTI代理与调试不兼容.有人可以解释发生了什么以及为什么JVMTI + JDWP不是有效的设置?
当我尝试在Eclipse上调试我的任何项目时,我突然开始遇到这个奇怪的错误.我不记得为这个问题改变任何东西突然开始了.
'Launching <my program name>' has encountered a problem.
Cannot connect to VM.
Run Code Online (Sandbox Code Playgroud)
错误详情:
Cannot connect to VM
com.sun.jdi.connect.TransportTimeoutException
Run Code Online (Sandbox Code Playgroud)
此外,在控制台中我收到以下错误:
FATAL ERROR in native method: JDWP No transports initialized,
jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
ERROR: transport error 202: connect failed: Connection timed out
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized
[../../../src/share/back/debugInit.c:750]
Run Code Online (Sandbox Code Playgroud)
请告诉我如何解决这个问题.我在整个网络上搜索了一个答案,但没有运气.
我尝试了以下适用于其他人的解决方案:
在etc \中更改主机文件 - 删除2行之前的注释(#)符号,
并重新启动.
有人请帮帮我,我疯了.
谢谢
索萨
对于在 Linux 上运行的 JDK 14 应用程序,添加以下 JVM 参数
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
结果出现以下错误
Starting Main...
ERROR: transport error 202: socket creation failed: Address family not supported by protocol
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [open/src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c:734]
Run Code Online (Sandbox Code Playgroud)
将地址从 更改为*:5005似乎localhost:5005可行,但它仅绑定到本地主机。我知道在 JDK 12 上有效的事实*:5005,但我找不到任何与此相关的更改,事实上 JPDA 规范仍然提到了*jse 14 的选项https://docs.oracle.com/en/java/javase/14/文档/规格/jpda/conninv.html。有人知道我可以研究什么吗?这是一个错误还是一个我似乎找不到文档的功能。
我正在尝试在调试模式下运行Apache Tomcat 8.0.21。
当我发出命令时
sh catalina.sh jpda start
Run Code Online (Sandbox Code Playgroud)
它给出了这个错误。
错误信息
错误:无法两次加载此JVM TI代理,请检查Java命令行中是否有重复的jdwp选项。VM代理库初始化期间发生错误,无法初始化:jdwp
有人可以帮忙吗?
我只是想知道远程调试的额外开销.我使用HotSpot使用以下参数启动应用程序:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
Run Code Online (Sandbox Code Playgroud)
我听说很多旧版本的HotSpot会对性能产生很大影响,但我的应用程序现在使用java 8,我找不到任何有关它的最新信息.
我需要调试在 nginx 反向代理后面运行的远程 java 应用程序。我收到以下错误:
无法连接到远程调试对象虚拟机。原因:java.io.IOException:收到无效握手
为了实现这一点,正确的 nginx 配置应该是什么?
我已通过直接定位应用程序的主机,成功将 vscode java 调试器附加到远程 java 应用程序。
解析器是 127.0.0.11 因为我使用的是 nginx docker 镜像。
我的 nginx 配置文件app.xyz.com.conf在 conf.d 中:
server {
listen 1043;
resolver 127.0.0.11 valid=30s;
server_name app.xyz.com;
include /etc/nginx/mime.types;
location / {
proxy_buffer_size 8k;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
set $upstream "http://java-app:1043";
proxy_pass $upstream;
client_max_body_size 10M;
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我们正在开发一个应用程序,用于使用JDWP和JVMTI获取正在运行的Java应用程序的信息.Sun Java附带了JDWP的参考实现,因此使用agentlib -jdwp:将使用参考实现.我们的目标是研究JVMTI并编写JVMTI代理以获取具体细节.还创建一个Front端,用户可以使用该端请求有关正在运行的Java应用程序的特定信息.为此,我们必须编写JDWP的实现.虽然我们能够编写JVMTI代理并使用它从命令行附加到java应用程序.但我们的目标是将此信息发送到另一个java进程(前端).
所以我们有一个Java应用程序 - 前端查询来自JVMTI代理(后端)的信息.这些代理应该能够附加到我们要动态检查的运行java应用程序.关于如何做到这一点的任何想法?或者之前有人试过吗?
尝试在eclipse中调试本地java应用程序时出现以下错误.
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690]
Run Code Online (Sandbox Code Playgroud)
我读到它可能是由于某个eclipse想要用于调试的端口使用相同的端口引起的,但我如何确定端口号.我在错误日志或首选项中找不到任何内容.
有任何想法吗?
如果您在通过 jdwp/socket 启用远程调试的情况下启动 java 进程并且没有外部进程连接,是否会影响性能?我确实知道当远程客户端实际调试时会有很大的影响,但是如果我只是在特定端口上声明 jdwp,那么它本身会减慢应用程序吗?任何指向文档的链接将不胜感激。
我已经在远程计算机(不是localhost)中使用jpda选项启动了tomcat。我无法访问该端口。它抛出连接被拒绝。我能够在localhost中成功完成此操作。那为什么不从远程机器上呢?我正在使用tomcat 9.X和Ubuntu 16.04和Java 8