Tag: jvm

在JDK中找不到JRE

我安装了JDK C:\ Program Files \ Java \ jdk1.6.0_24 并设置变量如下: JAVA_HOME :C:\ Program Files \ Java \ jdk1.6.0_24 CLASSPATH :.; C:\ Program Files \ Java \ jdk1.6.0_24 \ lib; C:\ Program Files \ Java \ jdk1.6.0_24 \ lib \ tools.jar; 路径 :C:\ Program Files \ Java \ jdk1.6.0_24 \ bin 但是当我运行java -version命令时,错误 无法打开`C:\ Program Files \ […]

JVM锯齿空闲进程

我正在进行一项研究,调查一下JVM以及它的内存使用情况。 我不明白的是,JVM在空闲时填充它的内存是什么,只是在几乎达到堆时释放它? 为什么不只有一个扁平的旧内存? 顺便说一句,这个java应用程序托管在glassfish上,但是当我有一个简单的’hello world’swing应用程序时,我有相同的图表。 所以GlassFish不必对它做任何事情。 提前致谢!

Java中的自定义类加载器

是否可以在java中创建自己的自定义类加载器。 如果是那么请指导我。 我想在类文件中进行更改而不是类混淆,这样就无法通过任何工具进行反转

如何配置GC不能阻止世界?

假设我有一个JVM 1.7,它可以正常运行,最大1G。 堆大小。 并且只使用~0.5G的堆。 在某些时刻,堆使用量在几分钟内急剧增加(我怀疑负载增加而不是内存泄漏)并且GC( PS MarkSweep )启动。 GC运行约30分钟。 并且服务器没有响应所有时间。 堆统计显示,当时Old Gen堆使用量增加, Eden减少, max Survivor增加。 JVM使用默认选项-XX:+UseParallelGC 我将尝试增加堆,限制输入数据大小等。但我想知道如何调整GC以使 “停止世界”半小时。 我不介意服务器是否运行速度慢但我不想让它停止响应。 如何配置GC不能阻止世界 ?

如何编译和运行java程序?

这个问题非常广泛,但我想深入了解..我可以编写和运行java程序,但仍然让我困惑的是如何实现整个程序。我们有编译器将程序转换为字节码为JVM。 JVM如何分配内存? JVM是否具有内置堆和堆栈,或者JVM的解释器是否将内存分配给主内存本身中的对象。 原谅我的无知……但这真让我困惑。 在此先感谢.. Sriram

无法识别的VM选项’+ HeapDumpOnCtrlBreak’

我正在使用Jboss,我在JAVA_OPTS中添加了-XX:+HeapDumpOnCtrlBreak选项。 但是我在启动Jboss时遇到了错误: Unrecognized VM option ‘+HeapDumpOnCtrlBreak’ Could not create the Java virtual machine. 我在网上搜索过,似乎JDK 6不支持这个选项,所以我改为jdk1.5.0_09但仍然出现了这个错误。 有谁知道什么是错的?

优秀Java VM中方法调用的开销是多少?

有人能想出一个反汇编的机器码汇编列表吗? 我的意思是与C中的普通函数调用相比,必须有一些开销。 VM需要跟踪调用以查找热点,当它使用已编译的代码时,如果新加载的类需要重新编译,则需要提供更改已编译方法的方法。 我想在某处还有一个返回堆栈溢出检查。 编辑:我想我应该提一下,我不是一个java程序员,而是一个编译器编写器,想要找出为什么java应用程序如此缓慢而java微基准测试与本机编译代码相当。 因此,在这里查看一些细节对我来说很重要,即使他们只需要几个几纳秒和一些额外的指令。

如何杀死不可中断的线程?

我们举办了一场AI编程竞赛,参赛者将使用我们提供的API编写在JVM上运行的AI 。 我们通过限制它们可以用SecurityManager做什么来将它们放入沙箱中,并且在运行时它们只是设置了几个标志,这是他们的决定。 我们的系统和他们的AI之间唯一的交互是通过这些标志,所以如果他们的线程突然死亡,对我们没有任何不良影响。 当AI计算时间太长时,我们想关闭他们的线程。 但是,我们无法找到保证我们将销毁其线程的方法。 一个可能的原因是AI进入无限循环而没有阻塞,使得Thread.interrupt()无用。 Thread.stop()是不可靠的,因为如果它们在try catch块中, ThreadDeathexception将被捕获,并且对我们没有任何问题,因为它们没有触及任何坏事,我们不关心它们是否死亡。 目前我们只是忽略他们的线程并在超时之后继续它们,但是它们的无限循环将继续在后台处理直到JVM死掉。 这对我们来说是不可接受的,因为我们将在24/7的Web服务器上在后台运行匹配,因此我们希望尽可能多的稳定性。 一种想法是在一个单独的JVM运行每个游戏,但这比我们想要的要复杂得多。 是否有任何确定的消防方法来摧毁线程?

invokespecial和invokeinterface的方法调用

为什么invokespecial用于在java中调用方法? 我在多个地方读过但却无法理解完美的理由? 任何帮助,将不胜感激。

写入XLSX文件(POI)时JVM崩溃

尝试写入.xlsx文件时JVM崩溃。 我正在使用POI(XSSF)。 代码中的错误位置点是write method–> workBook.write(fileOutputStream); 在控制台我得到.. A fatal error has been detected by the Java Runtime Environment: SIGBUS (0x7) at pc=0xb68d77f3, pid=14653, tid=1849355120 JRE version: 7.0_04-b20 Java VM: Java HotSpot(TM) Server VM (23.0-b21 mixed mode linux-x86 ) Problematic frame: C [libzip.so+0x47f3] newEntry+0x73 Failed to write core dump. Core dumps have been disabled. To enable core […]