草庐IT

jvm-options

全部标签

java - 标记 "<optional>"在 dependencyManagement 元素中是否有效?

我对optionaldependencies的机制有点困惑在Maven工作。似乎可选依赖项只有在直接指定时才有效,而不是通过依赖项管理。我创建了三个测试项目p1-p3,具有依赖关系:p3依赖于p2p2依赖于p1如果我在中将依赖项声明为可选元素,这按预期工作。p2的POM:testgroupp11.0-SNAPSHOTtrue结果:p3的构建引入了p2,但没有p1。但是,如果我在中将依赖项声明为可选元素,它似乎被忽略了。p2的POM:testgroupp11.0-SNAPSHOTtruetestgroupp1结果:p3的构建引入了p2和p1。这是预期的行为吗?我在任何地方都找不到这个记录

java - 是否可以从类文件中查看 JVM 操作码?

这个问题在这里已经有了答案:IsitpossibletoviewaJavaclassfilesbytecode[duplicate](4个答案)Javadecompilervsjavadisassembler[closed](1个回答)关闭8年前。这其实不是反编译,我不想看源码,而是想看JVM指令,比如invokesome/package/method()V。是否有用于此目的的工具?

java - 使用 JVM Nashorn (Play Framework) 呈现 React.js 时出错。我得到 "null is not a function"

我一直在阅读本教程:http://tylermcginnis.com/reactjs-tutorial-a-comprehensive-guide-to-building-apps-with-react/,并在使用Nashorn在JVM上渲染React时遇到问题。我的App.js文件如下。在客户端上运行时它可以正常工作。只是在使用Nashorn/JVM时报错:varApp=React.createClass({getInitialState:function(){return{name:'TylerMcGinnis',friends:['JakeLingwall','MurphyRan

java - JVM Bytecode,如何找到局部变量的类型?

我正在研究afork来自Jetbrains的FernFlower,我一直在对其进行小的改进。关于FernFlower真正让我恼火的一件事是,它根据局部变量在bpush/spush等中的值来确定局部变量的类型。而Jode和Procyon以某种方式找到了找到局部变量原始值的方法。这是原始源代码。publicstaticvoidmain(String[]args)throwsException{inthello=100;chara2=100;shorty1o=100;inthei=100;System.out.println(a2+""+y1o+","+hei+","+hello);}当用F

java - jvm +LogCompilation输出中 "callee is too large"的含义

所以在+LogCompilation的输出中打印了消息calleeistoolarge和toobig与特定方法相关联(以及编译器决定不内联)。但是“被调用者”不是方法本身吗?这还有什么意思?如果是这样,“calleetoolarge”和“toobig”之间的区别是什么——它们的意思不一样吗(也许这只是一条遗留的日志消息,2位工程师对同一件事使用不同的语言?)或者“callee”是否真的意味着“caller”?不内联的任何一个理由都是合理的。我有点不好意思,我不明白这一点。 最佳答案 HotSpotJVM有两个JIT编译器:C1和C2

java - VMware guest 中的 JVM 堆大小调整

这个问题的措辞可能更好:在VMwareESX等管理程序上运行Java服务器如何影响Java堆?从操作系统/管理程序的角度来看,对JVM堆的访问是随机的guest操作系统或管理程序很难优化随机访问的内存鉴于此,管理程序能否检测到JVM堆中未使用的页面?Java服务器应用程序的传统观点认为,如果您在JVM启动时分配所有堆,而不是允许堆在需要时动态调整大小,则性能最佳。换句话说,如果您将堆大小设置为1GB,您的Java进程将获取1GB的连续虚拟地址空间(加上二进制文件所需的任何内容),其他应用程序不再可用的内存。VMware是否足够聪明,可以检测到其中一些堆实际上未被使用?这对GC性能有何影

java - 为什么 Maven javadoc 失败并出现错误 "cannot read options"?

当我运行mvnjavadoc:javadoc时,出现以下错误:[ERROR]BUILDERROR[INFO]------------------------------------------------------------------------[INFO]AnerrorhasoccurredinJavaDocsreportgeneration:Exitcode:1-javadoc:error-cannotreadoptions(Thesystemcannotfindthefilespecified)Commandlinewas:"C:\ProgramFiles\Java\jdk

java - 当 JVM 停止线程时,为 java 用户线程调用清理方法

我有在Linux上运行的J2SE应用程序。我已经停止应用程序脚本,我正在其中杀死J2SEpid。这个J2SE应用程序有6个无限运行的用户线程,它们将轮询后端数据库中的一些特定记录。当这个javapid被杀死时,我需要为每个长时间运行的线程执行一些清理操作,比如连接到数据库并将一些正在进行的事务的状态设置为空。有没有办法在每个线程中编写一个方法,在线程将要停止时由JVM调用。 最佳答案 您始终可以尝试使用Runtime.addShutDownHook实现关闭Hook,或者将长时间运行的代码封装在try中,将清理封装在finally中。

java - 是否每次执行 java 命令都会启动一个单独的 JVM?

是否每次执行java命令都会启动一个单独的JVM? 最佳答案 是的,它确实启动了一个单独的JVM。 关于java-是否每次执行java命令都会启动一个单独的JVM?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2851857/

java - Maven:找出是在 32 位还是 64 位 JVM 中运行

如何根据执行maven的VM是32位还是64位JVM来启用或禁用maven配置文件?我试过这个:x86或amd64分别检测32/64位VM,但这在64位Windows上运行的32位VM上失败,因为它激活64位配置文件。 最佳答案 在SunVM中,检查系统属性sun.arch.data.model32bitstuffsun.arch.data.model3264bitstuffsun.arch.data.model64引用:HotSpotFAQ 关于java-Maven:找出是在32位还是