Questions tagged «jvm»

Java虚拟机(JVM)使一组计算机软件程序和数据结构能够使用虚拟机模型来执行其他计算机程序和脚本。使用此标记可解决有关JVM提供的工具或其在特定情况下如何工作的问题。

5
在不使用调试参数启动JVM的情况下调试Java应用程序
通常,要将调试器附加到正在运行的jvm,您需要使用以下参数启动jvm: > java -Xdebug -Xrunjdwp:transport=dt_socket,address=1000,server=y,suspend=n 现在,如果我要调试不是在调试模式下启动的进程,该怎么办? 当生产系统(即在没有调试args的情况下启动)出现“随机”(我宽松地使用术语)错误时,就会出现这种情况。因此,我无法使用适当的参数重新启动jvm,因为没人知道如何再次再现该错误。在这种情况下是否不可能附加到JVM? 只是为了澄清,除非将它们以调试方式启动,否则无法使用jdb之类的工具来附加至已在运行的JVM。 从JVM手册页 使用jdb的另一种方法是将其附加到已经运行的Java VM。使用jdb调试的VM必须使用以下选项启动:

4
为什么JVM仍然不支持尾调用优化?
在进行了-jvm-prevent-tail-call-optimizations之后的两年,似乎有一个原型 实现,并且MLVM一段时间以来将该功能列为“ proto 80%”。 Sun / Oracle方面对支持尾部调用是否没有积极的兴趣,或者仅仅是JVM提到尾部调用“ 注定要在每个功能优先级列表上排在第二位 ”。语言峰会? 如果有人测试了MLVM构建并可以分享其运行效果的印象(如果有的话),我将非常感兴趣。 更新: 请注意,某些虚拟机(如Avian)支持正确的尾部调用,而没有任何问题。

2
限制java ssl调试日志记录
使用JVM标志 -Djavax.net.debug=ssl 正在产生大量的日志记录,即服务器上每个SSL事件的详细信息。无论如何,只有日志错误吗?或者这些标记中有一些更好的子集可以产生更整洁的输出 all turn on all debugging ssl turn on ssl debugging The following can be used with ssl: record enable per-record tracing handshake print each handshake message keygen print key generation data session print session activity defaultctx print default SSL initialization sslctx print SSLContext tracing sessioncache print session …
94 java  logging  ssl  jvm 

1
超出了GC开销限制
JVM抛出“ java.lang.OutOfMemoryError:超出了GC开销限制”的采样时间是多少?我知道您可以使用参数GCTimeLimit和GCHeapFreeLimit来控制98%和2%,但是采样时间是多少?

4
Java:<init>和<clinit>有什么区别?
我无法理解以下文本...这是否意味着&lt;clinit&gt;空的构造函数?为什么拥有两个不同的版本很重要? https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html 2.9. Special Methods 在Java虚拟机级别,每个构造函数(第2.12节)都作为具有特殊名称的实例初始化方法出现&lt;init&gt;。该名称由编译器提供。因为该名称&lt;init&gt;不是有效的标识符,所以不能直接用Java编程语言编写的程序中使用它。实例初始化方法只能由invokespecial指令在Java虚拟机内调用,并且只能在未初始化的类实例上调用。实例初始化方法具有从其获得构造函数的访问权限(第2.7.4节)。 一个类或接口最多具有一个类或接口初始化方法,并通过调用该方法进行初始化(第2.17.4节)。类或接口的初始化方法是静态的,不带参数。它有特殊的名字&lt;clinit&gt;。该名称由编译器提供。因为该名称&lt;clinit&gt;不是有效的标识符,所以不能直接用Java编程语言编写的程序中使用它。类和接口初始化方法由Java虚拟机隐式调用。它们从不从任何Java虚拟机指令直接调用,而仅在类初始化过程中间接调用。
93 java  jvm 

20
IntelliJ中未解决的Kotlin参考
我从学习Kotlin的教程开始IntelliJ。当我尝试运行示例时,即 fun main(args: Array&lt;String&gt;) { println("lol") } 该消息将使执行暂停。Error:(5, 5) Kotlin: Unresolved reference: println 这是我第一次使用IntelliJ。我也从未从事过任何Java项目,我是否缺少某些东西? 编辑:我已经看到了另一个问题。答案对于我的情况无效。

8
创建JVM编程语言
我已经使用C语言(使用lex和bison)创建了一种编译器,用于支持循环,函数内部的函数声明,递归调用等的动态类型编程语言。我还创建了一个虚拟机,该虚拟机运行由编译器创建的中间代码。 我现在正在考虑,而不是编译为自己的中间代码,而是将其编译为Java字节代码。 我看到关于创建JVM语言的问题已经存在 问但我认为答案并不十分有用。 所以这是我的问题: 我想为JVM创建一种语言是必须阅读 JVM规格书,您还能建议其他哪些书(当然,除了Dragon Book)?我最关心的是有关如何创建JVM语言的书籍或教程,而不是一般的编译器。 有许多Java库可以读取,写入和更改.class文件,例如jclasslib,bcel, gnu字节码等。您建议使用哪一个?另外,您知道执行相同工作的C库吗? 我当时正在考虑看看另一种针对JVM的语言,例如Clojure,Jython或JRuby。但是所有这些语言都是非常高级且复杂的(为它们创建编译器)。我一直在寻找一种针对JVM且其编译器是开放源代码的更简单(我不介意它是未知的还是未使用的)编程语言。有任何想法吗?

9
为JVM实现C#
是否有人在尝试为JVM实现C#?作为Java开发人员,我一直羡慕C#,但不愿放弃JVM的可移植性和成熟度,更不用说针对它的各种工具了。 我知道JVM和CLR之间有一些重要的区别,但是有没有什么是最流行的?
91 c#  java  clr  jvm 

7
Android Gradle无法为对象堆保留足够的空间
我已经安装了Android Studio 1.1.0。我还没有像启动新的Android应用程序或导入任何东西那样做任何事情。它以某种方式试图构建某些东西,并引发同步错误。 错误:无法启动守护进程。此问题可能是由守护程序的错误配置引起的。例如,使用无法识别的jvm选项。请在http://gradle.org/docs/2.2.1/userguide/gradle_daemon.html上查看守护程序的用户指南一章。 请阅读以下过程输出以了解更多信息: VM初始化期间发生错误。无法为对象堆保留足够的空间。无法创建Java虚拟机。 我已经检查过,gradle.org/.../gradle_daemon.html但找不到任何可以帮助我解决问题的方法。 这不是内存问题,因为我有8GB的物理内存,并且没有其他程序在运行。
91 android  gradle  jvm  heap 

8
每个Java应用程序有一个JVM吗?
是否所有运行的Java应用程序都使用相同的JVM,或者“每个Java应用程序一个JVM”是否适用?(例如,应用程序是IntelliJ IDEA,服务器和NetBeans) 此外,分配的JVM与每个Java应用程序使用的进程之间是否存在任何联系?
91 java  process  jvm 

18
字体无法用于Jasper Reports的JVM
我正在尝试使用DynamicJasper生成报告,但出现以下错误: net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 'Arial' is not available to the JVM. msttcorefonts已安装,但是我想JVM没有使用它的任何字体。 我正在使用Ubuntu 10.04。 我怎样才能解决这个问题?


30
Android Studio-未找到JVM安装
我在尝试启动时遇到问题 Android Studio 当我尝试在安装后启动它时,出现此错误: No JVM Installation found. Please install a 64 bit JDK. 我当前的系统规格: 操作系统:Windows 8.0 64 bit version 已安装JDK:JDK 1.8.0 我尝试过的 我尝试了在错误中报告的内容,并且在大多数解决方案中都尝试将JDK_HOME环境变量中的变量设置为我的JDK路径(64位版本),即C:\Program Files\Java\jdk1.8.0_05 *I also have tried rebooting system, just in case to test if the environment variable is not working without a restart 我已经看过这些解决方案并尝试过,但没有一个起作用,所以不要将其标记为以下任何一个的重复: Windows 7上的Android Studio安装失败,找不到JDK …

12
获取正在运行的JVM的参数
有没有办法获取正在运行的JVM的参数?是否有像jstat这样的命令行工具将JVM的pid作为输入并返回其启动参数?我对启动JVM时给出的-Xmx和-Xms值特别感兴趣。谢谢。 编辑:澄清我的约束。我们要检查的JVM正在生产服务器上运行。因此,我们更喜欢最小的干扰。我们能够使用jstat监视JVM,因此我们希望有一个类似的简单解决方案来访问参数。 编辑:我们还尝试使用jvisualvm获取参数。但是,为了连接到远程jvm,我们需要运行jstatd并修改JVM的安全设置,我们发现这在生产服务器上具有很大的破坏性和风险。
90 java  jvm 

4
什么是循环反转技术?
我正在阅读一个文档,该文档讨论了Java的即时编译器(JIT)优化技术。其中之一是“循环反转”。文件说: 您将常规while循环替换为do-while循环。而 do-while循环的中设置if条款。这种替换导致更少的两次跳跃。 循环反转如何工作以及如何优化我们的代码路径? 注意: 如果有人可以用Java代码示例进行解释,以及JIT如何将其优化为本地代码以及为什么在现代处理器中是最佳的,那将是很棒的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.