Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
Este erro ocorre apenas para rodar o teste. Para subir a aplicação esta mensagem não aparece. Pelo o que estou vendo esta mensagem não impacta na funcionalidade da api, pois o teste passa ou falha, além das outras funcionalidades da api.
Pesquisando, li artigos que trata da versão da jdk. Já troquei para 2 versões diferentes (estou utilizando a jdk 17), e não funcionou. Adicionei o caminho da jdk no diretório do windows (C:\Program Files\Java\jdk-17\bin) no variáveis de ambientes (path), mas não funcionou também.
Vi recomendações no stack para desabilitar este recurso no intelij:
Eu testei das duas maneiras; apenas com o -Xshare:off, e como está aí na imagem; com o -ea (o que ele recomenda no example). Mas ambas as formas não funcionaram.
Na sua primeira postagem vc disse que teve um erro, mas a mensagem em vermelho que vc mostrou não é um erro, é só um aviso e sendo um aviso, vc pode ignorar.
Vc pode ver que seus testes rodaram de boa e estão verdinhos e isso que importa.
Tudo indica que não impacta. Inclusive foi numa destas repostas sugerindo usar -Xshare:off que o cara comentou que pode ignorar.
Mas eu gostaria de tentar reproduzir este seu problema. Vc pode passar mais informações? Eu queria saber o seguinte:
Qual versão da IntelliJ vc está usando?
Pelo print vc usou Java 17, mas de qual fornecedor? Foi da Oracle mesmo?
Que tipo de projeto vc criou? O build system usado foi Maven, Gradle ou IntelliJ mesmo?
Eu fiz um teste aqui com o JDK 21 da Adoptium, no IntelliJ IDEA 2023.2.3 (Community Edition) e mesmo com aquela opção “instrumentings agent…” ativada, o aviso não apareceu.
Consegui reproduzir o aviso. Usei as mesmas versões que vc, mas testei também na versão mais recente da Community e apareceu também.
Pesquisando mais um pouco, encontrei este comentário:
E realmente vc pode só ignorar o aviso.
Acho melhor não usar o -Xshare:off, pois isso parece que desabilita umas optmizações lá, então é melhor evitar problema.
Outra opção é usar -XX:-PrintWarnings, mas também não acho bom porque vai que vc acaba escondendo avisos realmente importantes, né?
Então o melhor é só ignorar mesmo.
Por curiosidade eu testei com o Oracle JDK 21 e aparecem ainda mais avisos:
WARNING: A Java agent has been loaded dynamically (C:\Users\wldomiciano\.m2\repository\net\bytebuddy\byte-buddy-agent\1.14.8\byte-buddy-agent-1.14.8.jar)
WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning
WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information
WARNING: Dynamic loading of agents will be disallowed by default in a future release
Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
Para esconder estes 4 primeiros avisos basta adicionar -XX:+EnableDynamicAgentLoading lá no Run Configuration.
Isso só desabilita o CDS - Class Data Sharing
É um recurso que faz com que quando você tem várias instâncias da máquina virtual, elas compartilhem as mesma memória para algumas classes, basicamente as classes do rt.jar.
Mas é possível compilar um jar com mais classes fazendo o CDS.