seata启动报错,闪退求解

在启动seata时报错:

"apm-skywalking not enabled"
Error: missing server' JVM atC:\Program Files (x86)\Java\jre1.8.0_361\bin\server\jvm.dll'.
Please install or use the JRE or JDK that contains these missing components.

原来java 1.8.0_361下的bin文件夹没有server这个文件夹,361把server文件夹命名改成了client,我把clien复制到创建的server文件夹,后启动又报错,求解决:

"apm-skywalking not enabled"
Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap

sever 和client是jvm的不同模式,JDK包官网下的?

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/731430
  • 你也可以参考下这篇文章:(已解决)Error occurred during initialization of VM Could not reserve enough space for object heap
  • 除此之外, 这篇博客: 如果JVM虚拟机——堆内存储满了会导致停止工作吗?中的 2.Java heap space(堆内存溢出) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    • 当GC多次的时候新生代和老生代的堆内存几乎用满了,频繁触发Full GC (Ergonomics) ,直到没有内存空间给新生对象了。所以JVM抛出了内存溢出错误!进而导致程序崩溃。

    • 设置虚拟机参数(-Xms10m -Xmx10m -XX:+PrintGCDetails),如果不设置的话,可能会执行很久。

    @RestController
    public class JavaHeapSpaceController {
    
        /**
         * 使用是循环创建对象,是堆内存溢出
         */
        @RequestMapping("/javaHeapSpace")
        public void javaHeapSpace(){
            String str = "hello world";
            while (true){
                str += new Random().nextInt(1111111111) + new Random().nextInt(222222222);
                /**
                 *  intern()方法:
                 * (1)当常量池中不存在这个字符串的引用,将这个对象的引用加入常量池,返回这个对象的引用。
                 * (2)当常量池中存在这个字符串的引用,返回这个对象的引用;
                 */
                str.intern();
            }
        }
    }
    

    • 调用监测程序可用的接口,发现还是可以正常访问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^