【问题标题】:initialize jmockit without -javaagent在没有 -javaagent 的情况下初始化 jmockit
【发布时间】:2015-03-18 04:16:21
【问题描述】:

我使用 jmockit 和 junit 为模块编写单元测试并在 STB 中运行它。我使用 jmockit-1.7 因为机顶盒只有 java 5。

运行单元测试时出现此错误: java.lang.IllegalStateException: Jmockit 尚未初始化。检查您的 Java 5 VM 是否已使用 -javaagent:jmockit.jar 命令行选项启动

但我的 STB 使用的是 siege java VM,所以它没有 -javaagent 命令行选项

我有谷歌,并从Running tests with JMockit找到了解决方案

@BeforeClass
public static void Initialize()
{
Mockit.setUpMocks();
}

但这行不通。我必须使用 jmockit-0.999.19 才能拥有Mockit.setUpMocks();

谁能帮我在没有 -javaagent 的情况下初始化 jmockit 并在 java 1.5 中运行?

【问题讨论】:

  • 没有“-javaagent”参数就无法在Java 1.5上运行JMockit;为此,您必须在 Java 1.6 或更高版本上运行。
  • 你确定@Rogério 吗?你能帮我证明一下吗?
  • JDK 1.5 没有 Attach API 库,它只出现在 JDK 1.6 中; JMockit 依靠它来动态加载提供必要的java.lang.instrument.Instrumentation 对象的Java 代理;当使用“-javaagent”时,Java 代理在启动时由 JVM 加载,因此 JMockit 不需要使用 Attach API。据我所知,这是唯一两种获取Instrumentation 对象的方法;而在 JDK 1.5 中,只有其中一种(-javaagent 方式)可用。
  • 非常感谢@Rogério先生。

标签: linux initialization jmockit javaagents


【解决方案1】:

3 年前... 更新:在最新版本中,JMockit v1.40 对 JDK6 的支持将被删除......所以使用 JDK7+ ;-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多