草庐IT

java - 为 JDK 11 替换对 sun.misc.VM 的访问

在OpenJDK8中,可以访问sun.misc.VM并调用isDirectMemoryPageAligned和maxDirectMemory。isDirectMemoryPageAligned用于正确调整要分配的直接内存的大小,如DirectByteBuffer所做的那样.maxDirectMemory用于报告内存统计信息以及访问为-XX:MaxDirectMemorySize配置的值。在内部,它将对允许的直接内存消耗设置一个限制。自OpenJDK9起,类VM已移至jdk.internal.misc且不可用,除非--add-exportjava.base/jdk.internal.mi

java - 有没有一种可移植的方法来找出 JVM 从 VM 内部打开了多少文件?

我正在为一些Java文件处理代码编写测试,并希望确保所有文件都已正确关闭。我不想运行“lsof”,因为这会打开更多文件并使测试套件不可移植。有人知道这样做的方法吗? 最佳答案 如果您正在寻找JDK的一部分,答案是否定的。您可能会发现使用JVMTI的东西,但这不是可移植的(它是native界面)。或者使用JPDA的东西,但这需要第二个JVM。我给你这两个首字母缩略词作为谷歌搜索的开始。如果你想在JVM中运行并且可移植,你必须为你的文件引用引入一个工厂:替换所有newFileInputStream(),newFileOutputStre

java - 64 位 Java VM 运行应用程序速度慢 10 倍

我有一个使用JarBundler打包的Java应用程序。该应用程序占用大量CPU(大量大型Collection.sort()调用)。在MacOS上,当使用64位JavaApplicationStub时,应用程序运行缓慢。此JavaApplicationStub文件正在启动Java64位VM。我发现了一个仅32位的旧JavaApplicationStub文件。我在Bundle中替换了它,应用程序运行速度提高了10倍!(因此,应用程序运行时会使用32位VM)。这有什么意义吗?为什么64位VM这么慢?像这样构建应用程序并破解JavaApplicationStub文件是否有意义?不胜感激。

java - 如何禁止 Java VM 在崩溃/将敏感数据写入磁盘时创建任何转储

我正在编写一个将敏感数据(密码和私钥)存储在内存中的Java程序。它将自由部署到任何操作系统。我知道用户几乎可以在任何系统上手动创建内存转储,但我担心操作系统或JVM实现创建的转储(包括但不限于JVM本身的某些段错误)会损害隐私敏感数据。是否可以采取任何措施来降低这些风险?Thisquestion是POSIX特定的,但给了我这些平台的答案。我有一个非平台特定的想法,包括将UncaughtExceptionHandler(likethis)设置为一个将覆盖敏感数据的类。但是如果内存被换出怎么办?如果JVM因JVM/JNI错误而崩溃(例如段错误)怎么办?我知道Linux可以阻止数据交换到磁

Java SE "occurred during initialization of VM"

我在windows7x64上安装了jdkse32bit。对于Windows,位于“http://www.oracle.com/technetwork/java/javase/downloads/index.html”。我收到了这条错误消息。C:\Users\Administrator>javac-versionErroroccurredduringinitializationofVMjava.lang.ClassNotFoundException:errorinopeningJARfiled:\ProgramFiles(x86)\prg_java\jdk1.6.0_26\jre\lib

java - MacOS : Workspace defines a VM that does not contain a valid jre/lib/rt. jar 上的 Maven 警告

我正在尝试清理我的Maven,当我运行mvneclipse:eclipse-Dwtpversion=2.0时收到此警告[警告]Workspace定义了一个不包含有效jre/lib/rt.jar的VM:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home有没有人知道如何修复它?我在MacOS上。这是我为eclipse配置的内容: 最佳答案 有补丁here,但到目前为止还没有应用于任何版本。:-(作为解决方法,您可以按照here所述创建符号链接(symbolic

java - 远程调试 : Failed to connect to remote VM. 连接超时

我在我的UbuntuVM上使用Eclipse远程调试远程WebLogic应用程序,然后它停止工作。我在远程服务器上打开了调试。从我的VM,我可以远程登录到远程调试端口。我试过重新启动Eclipse并将网络连接设置为Direct。它只是一直超时。FailedtoconnecttoremoteVM.Connectiontimedout.org.eclipse.jdi.TimeoutException在.log中:!MESSAGEFailedtoconnecttoremoteVM.Connectiontimedout.!STACK0org.eclipse.jdi.TimeoutExcepti

java - Eclipse : -javaagent 中的默认 VM 参数

我需要将以下参数设置为Eclipse中的默认VM参数-javaagent/Developer/aspectj-1.6/aspectjweaver.jar当我添加该行并运行我的代码时,出现错误:Unrecognizedoption:-javaagentCouldnotcreatetheJavavirtualmachine.我该如何解决这个问题? 最佳答案 -javaagent和JAR之间需要一个冒号(:),而不是空格。例如:-javaagent:/Developer/aspectj-1.6/aspectjweaver.jar

带有VM配置的应用程序包

我正在尝试以它们描述的方式使用应用程序包https://docs.microsoft.com/en-us/azure/batch/batch-application-packages但是我一直在错误地说applicationpathnotfound.有什么想法可能出了什么问题吗?或者应用程序包在后台如何工作,这可能有助于我调试错误?编辑:我正在尝试将特定于我的工作经理任务的应用程序包添加。我以AzurePortal的名称和1.0版,通过AzurePortal添加了软件包作为ZIP文件。这是我用来引用它的代码:stringtaskID="tasktest1";//Obtainapplicatio

【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)

🎃个人专栏:🐬算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客🐳Java基础:Java基础_IT闫的博客-CSDN博客🐋c语言:c语言_IT闫的博客-CSDN博客🐟MySQL:数据结构_IT闫的博客-CSDN博客🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客💎C++:C++_IT闫的博客-CSDN博客🥽C51单片机:C51单片机(STC89C516)_IT闫的博客-CSDN博客💻基于HTML5的网页设计及应用:基于HTML5的网页设计及应用_IT闫的博客-CSDN博客​​​​​​🥏python:python_IT闫的博客-CSDN博客🐠离散数学:离散数学_IT闫的博客-