问题标签 [jvm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
11 回答
5276 浏览

java - 如何从 JVM 外部调用对象中的方法?

我有一个非常简单的 Java 类,它通过输入验证有效地装饰了一个 Map,具有明显的 void set() 和 String get() 方法。

我希望能够有效地调用这些方法并处理来自 JVM 外部的返回值和异常,但仍然在同一台机器上更新:我想到的调用者不是另一个 JVM;谢谢@戴夫雷

我的实施考虑是典型的

  • 表现
  • 易于实施和维护(简单?)
  • 可靠性
  • 灵活性(即我可以从远程机器呼叫等)

有没有“正确的方法”?如果没有,我有什么选择,每种选择的优缺点是什么?

(人们实际上已经做过并且可以提供真实反馈的东西会很棒!)

0 投票
2 回答
4596 浏览

java - Java 6 JVM 挂起

很抱歉这篇长篇文章,但我想知道在我向 Sun 提交错误报告之前是否可以得到更多的关注。

JVM:6u11
操作系统:Windows XP SP3
硬件:AMD Athlon 64 X2 4600+ @ 2.41GHz,3.25 GB RAM。

我相信我在 JVM 中遇到了一个错误,没有为线程提供监视器。在以下线程跟踪中,监视器<0x12a8f9f8>被 获取RelayedMessages-0000000001,最终等待它;随后通知了该线程。然而,即使列出的所有线程都在争夺监视器,但没有一个线程得到它。

我保证线程转储对于每个引用 monitor 的线程都是完整的<0x12a8f9f8>。转储是使用 Java VisualVM 获得的,在 16 小时内 3 次,并且每次都显示是一致的(这些线程没有变化)。

有没有人不同意我的评估,即 JVM 未能将监视器交付给任何符合条件的线程,什么时候应该将它交付给其中一个?

0 投票
4 回答
1723 浏览

java - 自动异常处理

我想知道是否存在(在 Java 世界中)能够使用以下功能拍摄 JVM 当前状态的快照:

  • 在抛出异常时执行此操作。
  • 捕获局部变量、方法的参数等。
  • 将它放在一个方便的文件中,该文件可用于在 IDE 中提取或重现源代码中的情况。

前两个功能是必需的(第三个会很棒)。并且它必须适合生产使用(因此,调试器没有办法)。

在问这个之前,我已经搜索了万维网(尽可能长),我发现了一些指针:

  • Cajoon Interceptor:正如Dzone 帖子中所说,它是一个满足三个要求的被动 JVM 代理!但是,它有两个缺点:您必须为此付费,并且网站已关闭(也许没有机会支付任何费用)。
  • AviCode Intercept Studio:Cajoon 的 .NET 等价物。只是为了提供一些见解。
  • JavaFrame:好的,这是一条推文,但它指向一个可用的 SVN 存储库,其中包含看起来不错的 JVM 代理的源代码(在 MIT 许可下)(我将尝试一下)。

那么,也许我正在寻找一个不存在的解决方案?这并不紧急,但我有一个项目的想法,探索这条“未知”(?)路径并获得真实的东西会很棒。

似乎很清楚它将是一个 JVM 代理(例如,来自 JVMTI 的异常事件)。

最后,我将重点介绍 Wikipedia 异常处理文章中的以下段落:

在 Java 或 .NET 等运行时引擎环境中,存在附加到运行时引擎的工具,每次发生感兴趣的异常时,它们都会记录在引发异常时内存中存在的调试信息(调用堆栈和堆值)。这些工具称为自动异常处理或错误拦截工具,并为异常提供“根本原因”信息。

这就是想法。我希望有人能给我一些见解,或者将来有人会从这篇不起眼的帖子中得到启发:)

谢谢!

0 投票
2 回答
1150 浏览

java - 拍摄优化的 JVM 运行时的快照

我知道 JVM 可以在运行时进行一些非常重要的优化,尤其是在 -server 模式下。当然,JVM 需要一段时间才能稳定下来并达到最佳性能。有什么方法可以对这些优化进行快照,以便在您下次运行应用程序时立即应用它们?

“嘿 JVM!优化我的代码做得很好。你能把它写下来给我吗?”

0 投票
1 回答
3166 浏览

java - Java hprof 问题

运行 java 类时使用 -agentlib:hprof=cpu=times 与 -agentlib:hprof=cpu=sample 有什么区别?我知道 cpu=sample 会导致 jvm 定期对调用堆栈进行采样,但是 cpu=times 有什么作用呢?

0 投票
6 回答
66899 浏览

java - 将 JVM/JRE 设置为自动使用 Windows 代理

我确实看到了关于为 JVM 设置代理的问题,但我想问的是如何利用已经配置的代理(在 Windows 上)。

这是我的问题的演示:

  1. 转到您的控制面板-> Java 并设置代理地址。
  2. 运行以下简单的小程序代码(我使用的是 Eclipse IDE):

与您在 Java 控制面板中放置的设置无关,Applet 会显示“NONE”。如果 Windows 代理设置(通常在 Internet Explorer 中设置)是我可以确定的,但在 Java 控制面板中执行额外的配置步骤仍然是可接受的解决方案,那么最好的办法是。

谢谢!

0 投票
5 回答
74035 浏览

java - 在不使用调试参数启动 JVM 的情况下调试 java 应用程序

通常要将调试器附加到正在运行的 jvm,您需要使用以下参数启动 jvm:

现在如果我想调试一个没有在调试模式下启动的进程,我该怎么办?

当生产系统(即在没有调试参数的情况下启动)出现“随机”(我松散地使用该术语)错误时,就会出现这种情况。所以我无法使用适当的参数重新启动 jvm,因为没有人知道如何再次重现该错误。在这种情况下是否无法附加到JVM?

只是为了澄清不可能使用像 jdb 这样的工具来附加到已经运行的 JVM,除非它们是在调试模式下启动的

来自 JVM 手册页

使用 jdb 的另一种方法是将它附加到已经运行的 Java VM。要使用 jdb 调试的 VM 必须使用以下选项启动:

0 投票
2 回答
375 浏览

.net - .Net 中有类似 Java 描述符的东西吗?

我正在为.NET 程序集开发一个静态分析工具。在 Java 中,有一个Descriptor可用于表示具有指定语法的字符串中的方法或字段。

对于领域:

double d[][][];

将会

[[[D

它在进行字节码分析时特别有用。因为这很容易描述。如果.NET CLR 中有类似的东西?还是有更好的方法来实现这一目标?谢谢!

0 投票
1 回答
1029 浏览

java - 类.getConstantPool()

如果你从 rt.jar 库中反编译java.lang.Class类,你会注意到有一个本地方法声明:

不久前,我使用 Sun 的 .class 文件规范进行了类反编译,并且能够从每个 .class 文件中获取常量池记录。但这实际上是反编译类。

只是在 Class 类中看到这个签名很惊讶。所以我所做的是我在 Main() 方法中编写了一小段代码:

如果你反编译sun.reflect.ConstantPool类,你会注意到它有很多与类、方法、参数、声明的字段等相关的方法。

当我执行应用程序时,我得到了这个 HotSpot 异常:

为什么我不能得到任何类的ConstantPool ?考虑到getConstantPool()是本机/非公共方法这一事实,我认为 Sun 不希望我直接调用它。

0 投票
1 回答
2244 浏览

php - PHP 在 JVM 上真的更快吗?

最近我听到很多人宣传说,使用 Resin 的 PHP 实际上比使用 mod_php 快得多,但我在任何地方都找不到任何基准。

这是真的还是只是供应商BS?