错误:无法找到或加载主类-Xmx1G

时间:2017-08-03 17:01:11

标签: java memory-management garbage-collection jvm heap-memory

这很疯狂;有没有人见过这个?

java –Xmx1G –Xms1G –XX:+UseG1GC -XX:+PerfDisableSharedMem -jar service-1.0-SNAPSHOT.jar
Error: Could not find or load main class –Xmx1G

我可以这样做:

java -jar service-1.0-SNAPSHOT.jar –Xmx1G –Xms1G –XX:+UseG1GC -XX:+PerfDisableSharedMem

jmap -heap {PID}表明它完全忽略了这些选项。我尝试了不同的变体:

java –XX:+UseG1GC -jar service-1.0-SNAPSHOT.jar –Xmx1G –Xms1G  -XX:+PerfDisableSharedMem
java -Xms1G -Xmx1G -jar service-1.0-SNAPSHOT.jar
java –xx:+useg1gc -jar service-1.0-SNAPSHOT.jar
java -server –XX::+UseG1GC -jar service-1.0-SNAPSHOT.jar`

我得到此错误: Error: Could not find or load main class {OPTION}

或者它会运行但忽略选项。

甚至忽略java -XX:-UseConcMarkSweepGC -jar service-1.0-SNAPSHOT.jar

jmap -heap 5879 
Attaching to process ID 5879, please wait... 
Debugger attached successfully. 
Server compiler detected. 
JVM version is 25.121-b13

using thread-local object allocation.  
Parallel GC with 8 thread(s)  
Heap Configuration:

MinHeapFreeRatio         = 0
MaxHeapFreeRatio         = 100
MaxHeapSize              = 4294967296 (4096.0MB)
NewSize                  = 89128960 (85.0MB)
MaxNewSize               = 1431306240 (1365.0MB)
OldSize                  = 179306496 (171.0MB)
NewRatio                 = 2
SurvivorRatio            = 8
MetaspaceSize            = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize         = 17592186044415 MB
G1HeapRegionSize         = 0 (0.0MB)

这是我的JVM:

java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

这发生在我的Mac和Alpine Docker图像上。有什么想法吗?

2 个答案:

答案 0 :(得分:10)

当你应该使用连字符(U + 002D)时,你使用了一个短划线(U + 2013)。

{{1}}

答案 1 :(得分:1)

JVM参数认为连字符需要考虑JVM参数。如果您正在使用MAC书籍,那么视图可能很容易妄想

连字符 - ,将短语中的单词分开,如“最少使用的产品”,用于书籍和其他事项中的换行符。

一个短划线, - ,用于在句子中间引出一个短语 - 这不是一个括号,但它与逗号的引用并不是那么密切相关。它也被用来作为一种停顿来强调某些东西 - 句子末尾的重要内容。

短划线, - ,分隔日期,数字和数量的范围 - 如9-5和1月 - 8月。它也用于某些类型的连接,方向和对比,例如在林肯 - 道格拉斯的辩论中代表“对抗”或像Alsace-Lorraine这样的地名配对,两者都是一起被提到的独立地方。