草庐IT

jvm-options

全部标签

java - 基于 JVM 的语言/运行时如何生成 Java 字节码?

JVM之上有多种语言/运行时:例如JRuby、Groovy、Jython、Clojure、Rhino、Scala等等...这些如何生成Java字节码?是否有用于执行此操作的标准化库?生成的字节码如何执行?(或者我的假设是错误的,提到的一些语言不生成字节码?) 最佳答案 其中一些生成字节码。有些具有作为解释器执行的运行时系统。有些是两者的混合。毕竟,JVM是具有特定体系结构和特定指令集的CPU(恰好不存在)。您可以像为任何CPU生成目标代码一样,使用代码生成器来定位它。(现在公平地说,它的指令集非常关注Java的功能和需求,但它仍然足

java - JVM 远程调试 session 因未捕获的异常而终止

我正在尝试远程调试Scala项目。执行程序(从SBT构建和执行)和我的调试器(Intellij)都是本地的,但由于我不想使用Intellij构建,使用远程调试session似乎是方便调试的最简单选择。程序以下列选项启动:-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005它在启动时成功挂起,我可以成功附加我的调试器。我可以设置断点并逐步执行代码,但问题是未捕获的异常终止了调试session并断开了调试器,从而破坏了调试的目的。这是默认行为是愚蠢的,所以我一定是做错了什么。Intellij的控制台显示:C

java - 'java' 和 'libjvm.so' (Linux) 或 'jvm.dll' (Windows) 之间的区别?

通过普通java命令启动应用程序与通过libjvm.so(Linux中的libjvm.so或Windows中的jvm.dll)直接调用JVM有什么区别?最近在论坛上看到说用dll或.so文件启动eclipse性能会更好。我想知道这是怎么发生的。谢谢。 最佳答案 如果人们想围绕Java核心包装他们自己的功能,通常他们会针对jvm.dll进行构建,有时很难做一些看起来来自Java的“本地”事情。一个很好的例子确实是Eclipse,他们想在其中弹出启动画面并在启动之前执行一些其他操作。对于其他产品,Java只是他们工作量的一小部分(例如:

java - 如何确定是否在 JVM 实例上设置了 -server 选项

我正在尝试确定是否在我的JVM实例上默认启用了JVM(使用jdk1.7u3)-server选项。基于我的环境(Windows2008ServerR2)和Server-ClassMachinedetectioninformation尽管我想明确知道,但我希望它会被设置。当然,我可以使用该选项显式启动JVM,而且我很可能会这样做,不过是否有一种简单的方法来确定它。我已经尝试过以下方法,但似乎都没有明确说明我在寻找什么。也许它编码在其他一些细节中。通过jVisualVM查看JVM并查看未明确列出的JVM参数以编程方式尝试查看JVM参数,与通过jVisualVM观察到的参数相匹配Runtime

Oracle 数据库嵌入式 JVM

我们如何确定Oracle数据库11g企业版11.2.0.2.0版64位(嵌入式JVM)支持哪个JRE版本任何建议将不胜感激 最佳答案 我找到了确定在Oracle数据库上使用哪个jvm版本的答案解决方法如下:如果您需要找出在您的Oracle服务器上安装了哪个java/jdk版本,您可以创建函数,然后直接从JDK检索java版本。首先创建函数...CREATEORREPLACEFUNCTIONget_java_property(propINVARCHAR2)RETURNVARCHAR2ISLANGUAGEJAVAname'java.la

java - 网络中断后由于锁定 nfs 文件导致 JVM 崩溃

以下代码片段导致JVM崩溃:如果获取锁后网络中断while(true){//filesharedovernfsStringfilename="/home/amit/mount/lock/aLock.txt";RandomAccessFilefile=newRandomAccessFile(filename,"rws");System.out.println("fileopened");FileLockfileLock=file.getChannel().tryLock();if(fileLock!=null){System.out.println("lockacquired");}el

java - Spring 可以在 OPTIONS 方法上自动生成 'Allow' header 吗?

当我在SpringMVC中配置我的RequestMapping时,我想在OPTIONS方法是时自动生成正确的Allowheader用过。例如,使用这个Controller:@Controller@RequestMapping("/test")publicclassTestController{@RequestMapping(method=RequestMethod.GET)ResponseEntitygetTest(){returnnewResponseEntity("test",HttpStatus.OK);}}现在,如果我对该URL执行OPTIONS请求,我会收到405,方法不允许

java - 为什么他们决定让接口(interface)有 "Optional Operations"

ImmutableSet实现Set界面。对ImmutableSet没有意义的函数现在称为Set的“可选操作”。我假设是这样的情况。所以ImmutableSet现在会为许多可选操作抛出UnsupportedOperationException。这对我来说似乎倒退了。有人告诉我,接口(interface)是一种契约,因此您可以在不同的实现中使用强加功能。可选操作的方法似乎从根本上改变了(矛盾?)接口(interface)的用途。今天要实现这个,我会将Set接口(interface)分成两个接口(interface):一个用于不可变操作,另一个用于扩展这些操作以用于修改器。(非常快,现成的解

java - 什么是更惯用的 : setters taking an Optional<T> or just T?

使用Optional时对于可为null的字段,让settertake是否更惯用一个Optional或只是一个T然后有它如下?publicclassBar{privateOptionalfoo;publicvoidsetFoo(Tfoo){this.foo=Optional.fromNullable(foo);}publicOptionalgetFoo(){returnfoo;}} 最佳答案 我会考虑两者都不做,将值作为T在内部存储,并且只在API级别有Optional。publicclassBar{privateTfoo;publi

java - 最终静态与最终非静态字段和 JVM 优化

我很好奇JVM如何处理staticfinal字段。我看到一个类似的问题here但这不是我要找的。让我们考虑这样的例子:publicclassTestClassX{publicfinalintCODE_A=132;publicfinalintCODE_B=948;publicfinalintCODE_C=288;//someothercode}publicclassTestClassY{publicstaticfinalintCODE_A=132;publicstaticfinalintCODE_B=948;publicstaticfinalintCODE_C=288;//someoth