3

我在以下情况下收到此消息:

java.lang.ClassNotFoundException:agents.MemoryAgent

我已经按照此链接手动将一个 java 代理类捆绑到一个 jar 中。对于运行/调试配置,我复制了一个工作条目并添加了 VM 参数。

我已经尝试了这两种方法(常量参数是从复制的配置中继承的)

-javaagent:agent.jar -Xms256m -Xmx1024m -Djava.net.preferIPv4Stack=true

-javaagent:agent.jar -cp 。-Xms256m -Xmx1024m -Djava.net.preferIPv4Stack=true

注意: 此处使用假名类,存在真实类 在此处输入图像描述

我尝试将 agent.jar 文件放入上面指定的“工作目录”以及项目结构/设置对话框中指定的“项目编译器输出”目录。

我的 manifest.txt 文件的全部内容:

Premain-Class:agents.MemoryAgent

提取时在 META-INF\MANIFEST.MF 文件中产生:

清单版本:1.0 创建者:1.6.0 (Sun Microsystems Inc.) Premain-Class:agents.MemoryAgent

我已经验证了类的路径与 jar 和类文件中使用的路径匹配。


我在用着:

  • java版本“1.7.0_25”
  • Intellij12.1

为什么找不到类?

在屏幕截图中,一个名为“使用模块的类路径”的字段,但我在任何地方都找不到它的定义。这有关系吗?

4

1 回答 1

1

IDEA 将尝试在工作目录(如上图所示)中找到您在 -javaagent 中指定的 jar(在您的情况下为 agent.jar)。如上面的 UI 所示,将 jar 复制到您的“工作目录”将解决该问题。因此,对于您的情况,请将 agent.jar 复制到“E:\Autre\Projects\JetBrains”

于 2016-02-02T11:01:57.680 回答