Como adicionar diretório ao caminho de classe em um perfil de execução de aplicativo no IntelliJ IDEA?

206

Estou tentando adicionar um diretório ao caminho de classe de um perfil de execução de aplicativo

Se eu substituir usando -cp x: target / classes nas configurações da VM, obtenho o seguinte erro:

java.lang.NoClassDefFoundError: com/intellij/rt/execution/application/AppMain

Alguma idéia de como adicionar um diretório ao caminho de classe do meu projeto?

sal
fonte
1
Não está claro para mim, onde você está tentando adicionar isso. Na linha de comando do IJ? Ou nas propriedades do projeto?
Heiko Rupp
Relacionados: youtrack.jetbrains.net/issue/IDEA-160167
AlikElzin-Kilaka

Respostas:

270

No Intellij 13, parece que é um pouco diferente novamente. Aqui estão as instruções para o Intellij 13:

  1. clique na visualização Projeto ou oculte-a clicando no botão "1: Projeto" na borda esquerda da janela ou pressionando Alt + 1
  2. encontre seu projeto ou submódulo e clique nele para destacá-lo, depois pressione F4 ou clique com o botão direito do mouse e escolha "Abrir configurações do módulo" (no IntelliJ 14, ele se tornou F12)
  3. clique na guia dependências
  4. Clique no botão "+" à direita e selecione "Jarros ou diretórios ..."
  5. Encontre o seu caminho e clique em OK
  6. Na caixa de diálogo "Escolher categorias do arquivo selecionado", escolha Classes(mesmo que sejam propriedades), pressione OK e OK novamente
  7. Agora você pode executar seu aplicativo e ele terá o caminho selecionado no caminho da classe
Stivlo
fonte
2
Então, como você criaria para executar configurações com dois diretórios diferentes que devem estar presentes exclusivamente em um, mas não no outro. No eclipse, você pode adicionar / remover qualquer coisa em uma configuração de inicialização. O IntelliJ não suporta isso?
Καrτhικ
9
É bastante claro que você pode alterar o caminho de classe do caminho de classe do módulo de alteração de configuração de execução . Mas a pergunta exata era "como adicionar diretório ao caminho de classe em um perfil de execução de aplicativo ". Então o real foi dado por uaaquarius
Pavel Vyazankin
Obrigado ! Isso resolveu meu problema após séculos de pesquisa!
JonasCz - Restabelece Monica
1
O passo 6 não aparece para mim. Estou no intellij 14. Eu tenho uma pasta chamada lib onde meu .jar está localizado. selecionar a pasta ou jar irá apenas analisar o caminho em intellij. ainda não funciona
Takeru
@ Takeru Você descobriu isso?
22616 rosshamish
91

Parece que o IntelliJ 11 mudou o método e a resposta marcada não funciona mais para mim. Caso alguém chegue aqui por meio de um mecanismo de pesquisa, veja como eu o resolvi no IntelliJ 11:

  1. Vá para a estrutura do projeto, clique em módulos e clique no seu módulo
  2. Escolha a guia "Dependências"
  3. Clique no botão "+" no lado direito e selecione "Jarros ou diretórios ..."
  4. Adicione o (s) diretório (s) desejado (observe que você pode selecionar várias vezes) e clique em OK
  5. Na caixa de diálogo exibida, selecione "classes" e NÃO "diretório jar"
  6. Verifique se você está usando esse módulo em seu destino de execução

Observe que a etapa 5 parece ser a principal diferença. Se você selecionar "diretório jar", ele parecerá exatamente o mesmo no IDE, mas não incluirá o caminho no tempo de execução. Parece não haver maneira de determinar se você selecionou anteriormente "classes" ou "diretório jar" após o fato.

samkass
fonte
4
Muito obrigado por publicar isto. Você acabou de me salvar uma hora mais ou menos.
19412 John Jiang
Eu tenho o mesmo problema de antes com o IJ11 e fiquei feliz em encontrar uma resposta esperando por mim neste momento.
Sal
Perfeito. Mesmo processo para IJ12. Passei por esta postagem ao tentar resolver 'java.lang.ClassNotFoundException: com / microsoft / jdbc / sqlserver / SQLServerDriver' Isso resolveu o problema de conexão. Graças
jkmurphy1
6
Eu não entendo a etapa 5 :( A caixa de diálogo simplesmente não aparece.
Charles Wood
1
@ CharlesWood: Quando eu queria selecionar duas pastas com uma delas contendo subpastas. Eu tive que expandir o que contém subpastas através do pequeno símbolo de seta ao lado do nome da pasta para que a caixa de diálogo apareça. Caso contrário, a caixa de diálogo seria ignorada.
Timo Reimann 16/05
35

Você pode tentar a opção -Xbootclasspath / a: path do iniciador de aplicativos java. Por descrição, especifica "um caminho separado por dois pontos de diretórios, arquivos JAR e arquivos ZIP para anexar ao caminho padrão da classe de autoinicialização".

uaaquarius
fonte
2
Alguns documentação sobre como -Xbootclasspath funciona: docs.oracle.com/cd/E15289_01/doc.40/e15062/optionx.htm#i1018570
Lambart
3
Essa é uma boa resposta, pois não exige que você altere a configuração do projeto. Na verdade, acho que responde melhor à pergunta.
Chewy
1
Infelizmente, isso não funcionou para mim, pois isso faz com que todas as classes carregadas desse caminho de classe sejam carregadas pelo carregador de classes de autoinicialização, que quebra o código que assume que Xyz.class.getClassLoader () não é nulo.
Njol 04/04
@uaaquarius, por que não há como editar a string da linha de comando diretamente? Isso é frustrante.
Pacerier
@uaaquarius, Por que é que se eu adicionar mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jarcomo dependência usando o outro método em stackoverflow.com/a/16742141/632951, ele funciona, mas fazer usando -Xbootclasspath/anão?
Pacerier
19

Estou usando a idéia 8. na guia dependências do módulo (na caixa de diálogo Estrutura do projeto). Adicione uma "Biblioteca de módulos". Lá você pode selecionar um diretório Jar para adicionar. Em seguida, verifique se o perfil de execução está usando o Caminho de classe e o JDK do módulo correto quando ele é executado (isso está na caixa de diálogo de configuração da execução.

Mike Pone
fonte
11

Defina "Opções da VM" como: "-cp $ Classpath $; your_classpath"

Opções de VM

zoirs
fonte
Isso salvou meu dia.
Bruno Ranschaert
2

Suponha que você precise apenas de x: target / classes em seu caminho de classe. Depois, basta adicionar esta pasta ao seu caminho de classe e% IDEA% \ lib \ idea_rt.jar. Agora vai funcionar. É isso aí.

Oleksandr Bondarenko
fonte
4
A questão é como você adiciona esta pasta ao seu caminho de classe no IDEA?
Pacerier
0

Você não precisa especificar a pasta classes. O Intellij deve ser capaz de carregá-lo. Você receberá esse erro se "Saída do Project Compiler" estiver em branco.

Apenas verifique se o valor abaixo está definido: Configurações do projeto -> Projeto -> Saída do compilador de projeto para a pasta projectDir / out

VNN456
fonte