Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Java代理打包为可视VM插件_Java_Netbeans_Visualvm - Fatal编程技术网

如何将Java代理打包为可视VM插件

如何将Java代理打包为可视VM插件,java,netbeans,visualvm,Java,Netbeans,Visualvm,我已经编写了一个Java代理和一个SWT GUI来控制代理 我想将这个库打包到VisualVM的插件中,以允许使用VisualVM将代理附加到JVM 我在这里编写了一个Netbeans模块来实现这一点: 当我从Netbeans运行项目时,这就起作用了。但是,当我使用“createnbm”打包项目时,生成的库无法安装到VisualVM中。日志的输出如下所示: INFO [org.netbeans.modules.autoupdate.services.InstallSupportImpl]:

我已经编写了一个Java代理和一个SWT GUI来控制代理

我想将这个库打包到VisualVM的插件中,以允许使用VisualVM将代理附加到JVM

我在这里编写了一个Netbeans模块来实现这一点:

当我从Netbeans运行项目时,这就起作用了。但是,当我使用“createnbm”打包项目时,生成的库无法安装到VisualVM中。日志的输出如下所示:

INFO [org.netbeans.modules.autoupdate.services.InstallSupportImpl]: Timeout waiting for loading module org.intrace.visualvm/1.0 INFO [org.netbeans.modules.autoupdate.ui.wizards.InstallStep]: timeout of loading InTrace Launcher[org.intrace.visualvm/1.0] org.netbeans.api.autoupdate.OperationException: timeout of loading InTrace Launcher[org.intrace.visualvm/1.0] at org.netbeans.modules.autoupdate.services.InstallSupportImpl$3.call(InstallSupportImpl.java:437) at org.netbeans.modules.autoupdate.services.InstallSupportImpl$3.call(InstallSupportImpl.java:302) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) [catch] at java.lang.Thread.run(Thread.java:619) INFO[org.netbeans.modules.autoupdate.services.InstallSupportImpl]:等待加载模块org.intrace.visualvm/1.0的超时 信息[org.netbeans.modules.autoupdate.ui.wizards.InstallStep]:加载内部启动器的超时[org.InTrace.visualvm/1.0] org.netbeans.api.autoupdate.OperationException:加载内部启动器超时[org.InTrace.visualvm/1.0] 在org.netbeans.modules.autoupdate.services.InstallSupportImpl$3.call(InstallSupportImpl.java:437) 在org.netbeans.modules.autoupdate.services.InstallSupportImpl$3.call(InstallSupportImpl.java:302)上 位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 位于java.util.concurrent.FutureTask.run(FutureTask.java:138) 位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) java.lang.Thread.run(Thread.java:619)上的[catch] 我还怀疑我的代理和客户端库没有打包到nbm文件中,因为它太小了

我怀疑问题在于我需要在project build.xml中添加一些东西,但我正在努力解决什么问题


有人能告诉我我缺少什么吗?

让我猜猜——您正在使用NetBeans 6.9开发和打包模块,然后尝试将其加载到VisualVM 1.2.*或jvisualvm中?如果是这种情况,那么您刚刚遇到了一个兼容性问题,即针对NetBeans 6.9平台的模块不容易在基于NetBeans 6.8的应用程序(如VisualVM 1.2.*)中安装。这是由NB6.9平台使用pack200压缩/解压模块JAR造成的

为了将模块定位到较旧的平台(并且仍然使用最新的IDE构建),您需要手动指定插件平台使用的模块线束(转到“Tools/NetBeans platform/”,然后选择“harness”选项卡并选择可以下载的二进制文件中的线束


当您重建模块并创建NBM时,它应该可以在VisualVM 1.2.*以及jvisualvm中工作。

谢谢!这已经解决了安装错误。但是,我的代理和客户端JAR仍然没有绑定到NBM文件中。在运行时,我使用它来查找这些JAR的路径,并且在使用构建的NBM文件时当前返回null。当我直接从Netbeans运行插件时,这些jar的位置是正确的:代理路径:C:\Work\GitHub\InTrace\InTrace VisualVM plugin\build\cluster\modules\ext\InTrace-Agent.jar。您知道我如何解决这个问题吗?实际上,为了访问您的第三方库,您需要创建一个库包装器模块,将jar包装起来(一个简单的向导将在此处提供帮助),然后将库包装器和实际模块捆绑到一个模块套件(另一种项目类型)中。有关库包装器的详细信息,请查看。在这样设置模块后,可以使用InstalledFileLocator()获取JAR的实际位置。成功!我实际上不需要在VisualVM中使用这些JAR中的任何类。我只需要具有JAR的文件系统访问权限。因此,我可以手动将JAR放置到release/modules/ext/中,它刚刚起作用(TM)-。感谢您的帮助。