草庐IT

VM_global_library

全部标签

java - 我在 tomcat 中收到 "Java HotSpot(TM) 64-Bit Server VM warning: Exception java.lang.OutOfMemoryError occurred dispatching signal SIGTERM to handler"错误

我在VPS上安装了tomcat网络应用程序,而tomcat有时(大约每月一次)崩溃并在catalina.out中出现以下错误:JavaHotSpot(TM)64-BitServerVMwarning:Exceptionjava.lang.OutOfMemoryErroroccurreddispatchingsignalSIGTERMtohandler-theVMmayneedtobeforciblyterminated.以下是有关我的配置的一些详细信息:VPS:debian-5.0-x86_64内存:2.5GB,虚拟处理器:8硬盘:60gb硬盘-70%免费Tomcat7.0java版本

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表情符号转换为xml : what libraries exist?

我正在将MIME消息转换为XML,以便我可以将它们作为SOAP请求提交到邮件合并服务,但是表情符号给我带来了问题(例如thesmiley?,我想将其转换为😃).我正在使用XStream处理我的转换,但它没有正确编码表情符号和其他高/低代理对(参见下面的示例测试用例)。我可能遗漏了一些关键的xstream配置组件。我找到了thisproject这是基于thisproject它通过硬编码映射为特定的日本手机提供商进行转换,但我觉得这个问题可能在现有的Oracle或第三方(Apache等)库中得到更优雅的解决。从我读到和听到的NuSOAP为PHP解决了这个问题,但我想留在Java/Groov

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

多个 .NET Core SDK 版本之间进行切换 global.json

由于同一台电脑可以安装多个版本的.NETCoreSDK。当安装了许多不同版本的.NETCoreSDK之后,要如何才能使用旧版dotnet命令,执行dotnetnew或dotnetbuild之类的命令?这部分其实并不困难,只要设定global.json即可。首先要查询目前电脑所有安装过的SDK版本,首先通过 dotnet--list-sdks查看已安装的sdk版本。C:\Users\CC>dotnet--list-sdks3.1.426[C:\ProgramFiles\dotnet\sdk]6.0.419[C:\ProgramFiles\dotnet\sdk]8.0.100[C:\Program

java - 加载 dll 库文件时出现问题... java.lang.UnsatisfiedLinkError : Can't load library

在加载一个dll文件时,出现以下异常:Exceptioninthread"main"java.lang.UnsatisfiedLinkError:D:\Transliteration\rlpnc-3.1.0-sdk-ia32-w32-msvc80\rlp\bin\ia32-w32-msvc80\btrntjni.dll:Thesystemcannotfindmessagetextformessagenumber0x%1inthemessagefilefor%2atjava.lang.ClassLoader$NativeLibrary.load(NativeMethod)atjava.l