Maneira correta de adicionar jars externos (lib / *. Jar) a um projeto IntelliJ IDEA

734

Ao criar um novo projeto Java no IntelliJ IDEA, os seguintes diretórios e arquivos são criados:

./projectname.iml
./projectname.ipr
./projectname.iws
./src/

Desejo configurar o IntelliJ IDEA para incluir meus JARs de dependência no ./lib/*.jarprojeto. Qual é a maneira correta de conseguir isso no IntelliJ IDEA?

knorv
fonte
Estou enfrentando o problema ao executar o programa no terminal no IntelliJ. Eu usei a instrução de importação para usar as classes necessárias no programa. Enquanto eu o executo no IDE, ele funciona bem. Mas quando tento compilar a partir da linha de comando% javac MyProgram.java, ele diz erro: não é possível encontrar o símbolo
don_Gunner94

Respostas:

1306

Etapas para adicionar jars externos no IntelliJ IDEA:

  1. Clique Filena barra de ferramentas
  2. Estrutura do projeto ( CTRL+ SHIFT+ ALT+ Sno Windows / Linux, + ;no Mac OS X)
  3. Selecione Módulos no painel esquerdo
  4. Guia Dependências
  5. '+' → JARs ou diretórios
Câmbio
fonte
99
Além disso, considere adicionar uma pasta lib e use "Attach Jar Directories", que adicionará todos os jars na pasta lib. Para um projeto amplo, isso impede que você precise escolher cada jar individualmente.
joeslice
16
Para referência futura: esse botão "Adicionar" estava fora da borda direita da janela e passei um tempo excessivo procurando por ele antes de encontrar esta postagem e pensando em redimensionar a janela. (Isso foi no OSX 10.6.5 ...)
Daniel Dickison
7
@joeslice que funciona apenas se os JARs estiverem na raiz do diretório, certo? Parece não funcionar para JARs dentro de subdiretórios dentro de 'lib'.
opie
6
Na IJIdea 13, há "+"> em vez de "add".
Val
4
Estou usando o IDEA 14.0.2. Em vez de Adicionar, existe o símbolo +. Depois de clicar + há 3 opções: 1. JARs ou diretórios 2. Biblioteca ... 3. Módulo de dependência ...
Ripon Al Wasim
239

IntelliJ IDEA 15 e 2016

  1. Arquivo > Estrutura do projeto ...

    Arquivo> Estrutura do Projeto

    ou pressione Ctrl+ Alt+ Shift+S

  2. Configurações do projeto > Módulos > Dependências > Sinal " + "> JARs ou diretórios ...

    Módulos> Dependências> JAR ou diretórios

  3. Selecione o arquivo jar e clique em OK, depois clique em outro botão OK para confirmar

    insira a descrição da imagem aqui

    insira a descrição da imagem aqui

  4. Você pode visualizar o arquivo jar na pasta "External Libraries"

    insira a descrição da imagem aqui

ROMANIA_engineer
fonte
Na verdade, eu crio um novo módulo no painel "Módulos" (chamado, por exemplo, "JarsForLogging"), depois adiciono todos os frascos necessários (localizados em algum diretório distante da árvore do projeto) a este novo módulo e marco os frascos como " Exportação". Finalmente, adiciono o módulo recém-criado às dependências do módulo original. Um pouco mais hierárquico dessa maneira.
David Tonhofer
Além disso: verifique se as permissões do sistema de arquivos estão definidas corretamente para os .jararquivos. Use chmodpara modificá-los no Linux ou MacOS.
JJD
4
ainda funciona em 2018 (ano e versão IntelliJ). Obrigado. Dessa forma, eu posso carregar e usar as bibliotecas Armed Bear Common Lisp no IntelliJ, incrível!
21718 Jason Robinson
Sim. Funciona bem com o meu IntelliJ também. Obrigado!
Bms Bharadwaj
1
@ don_Gunner94, via linha de comando, você também deve fornecer o jar desta forma:javac -cp ".:/my/path/file.jar;" MyProgram.java
ROMANIA_engineer
118

Apenas copie e cole o arquivo .jar na pasta "libs" (ou toda a pasta "libs"), clique com o botão direito do mouse e selecione a opção 'Adicionar como biblioteca' na lista. Ele fará o resto ...

insira a descrição da imagem aqui

gurkan
fonte
Mais simples e do jeito que estamos acostumados desde a época do Eclipse.
Sufian
3
Claro e simples!!
Anaximandro Andrade
3
Meio chato, ainda pede um "nome" então, você pode simplesmente deixar qualquer lixo lá?
dividebyzero
Isso me ajudou também!
Preeti Joshi
Estou enfrentando o problema ao executar o programa no terminal no IntelliJ. Eu usei a instrução de importação para usar as classes necessárias no programa. Enquanto eu o executo no IDE, ele funciona bem. Mas quando tento compilar a partir da linha de comando% javac MyProgram.java, ele diz erro: não é possível encontrar o símbolo. -
don_Gunner94 11/04
20

Você os adiciona como bibliotecas ao seu módulo.

Eu normalmente tenho um /lib diretório na minha fonte. Coloquei todos os JARs que preciso lá, adicione / lib como uma biblioteca e faça parte das dependências do meu módulo.

Atualização de 2018: agora estou usando o IntelliJ 2017/2018.

Estou totalmente comprometido com o Maven e o Nexus no gerenciamento de dependências.

É assim que o mundo foi. Todo projeto Java de código aberto que eu conheço usa Maven ou Gradle. Você deveria também.

duffymo
fonte
Sim, mas e se o pom Maven não for chamado pom.xml? Parece que não consigo ler as dependências do Maven.
user1001630
4
Convenção é chamá-lo de pom.xml. Siga a convenção e renomeie seu arquivo.
Duffymo 6/07
Eu ainda acho necessário, quando o jar não tem repositório maven ... mas, eu não entendo como fazer isso corretamente. Eu entendo como adicionar um diretório, apenas não entendo como obtê-lo, também importa os javadocs. funciona quando eu adiciono um jar como um único arquivo, mas não se eu adicionar um diretório. Simplesmente não é possível?
ycomp 18/10/2015
Este é um bom conselho. Adicionar frascos manualmente é demorado e propenso a erros. Suas dependências sempre devem ser configuradas "via código", no pom.xml(para maven) ou qualquer que seja o equivalente para gradle.
Vikingsteve 28/05
1
Todos os JARs têm um repositório. Se não estiver disponível em um repositório público ou privado, você pode instalá-lo manualmente no seu .m2 local. Não há razão para fazer o contrário.
Duffymo
17

Se você estiver construindo seu projeto com gradle, basta adicionar uma linha às dependências no build.gradle:

buildscript {
    ...
}
...

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
}

e adicione a pasta ao seu projeto ou módulo raiz:

insira a descrição da imagem aqui

Então você coloca seus frascos lá e está pronto para ir :-)

cesards
fonte
Estou enfrentando o problema ao executar o programa no terminal no IntelliJ. Eu usei a instrução de importação para usar as classes necessárias no programa. Enquanto eu o executo no IDE, ele funciona bem. Mas quando tento compilar a partir da linha de comando% javac MyProgram.java, ele diz erro: não é possível encontrar o símbolo. -
don_Gunner94 11/04
7

Eu uso esse método e funciona bem:

1- Copie e cole os .jararquivos na libspasta.

2- Adicione compile fileTree(dir: 'libs', include: '*.jar')a dependenciesem build.gradleseguida, todos os frascos na libspasta serão incluídos ..

3- Clique com o botão direito do mouse na libspasta e selecione a opção 'Adicionar como biblioteca' na lista.

Ali Hesari
fonte
Obrigado, essa foi a única coisa que funcionou para mim!
Gregordy
Estou enfrentando o problema ao executar o programa no terminal no IntelliJ. Eu usei a instrução de importação para usar as classes necessárias no programa. Enquanto eu o executo no IDE, ele funciona bem. Mas quando tento compilar a partir da linha de comando% javac MyProgram.java, ele diz erro: não é possível encontrar o símbolo.
don_Gunner94 11/04
5

As bibliotecas não podem ser usadas diretamente em nenhum programa se não forem adicionadas adequadamente aos arquivos de classificação do projeto.

Isso pode ser feito facilmente em IDEs inteligentes como a inteli J.

1) Primeiro como convenção, adicione os nomes de pastas 'libs' no arquivo src do projeto. (isso pode ser feito facilmente usando o próprio IDE)

2) copie ou adicione seu arquivo de biblioteca (por exemplo: arquivo .jar) à pasta chamada 'libs'

3) agora você pode ver o arquivo da biblioteca dentro da pasta libs. Agora clique com o botão direito do mouse no arquivo e selecione 'adicionar como biblioteca'. E isso corrigirá todos os arquivos relevantes em seu programa e a biblioteca estará diretamente disponível para seu uso.

Observe:

Sempre que você estiver adicionando bibliotecas a um projeto, verifique se o projeto suporta a biblioteca

Keet Sugathadasa
fonte
3

Alguma grande ajuda encontrada aqui. No entanto, ainda não consegui fazê-lo funcionar apesar de carregar o JAR corretamente. Descobri mais tarde que acidentalmente criei um módulo na estrutura do arquivo, em vez da pasta normal, e esse mesmo módulo foi pré-selecionado na configuração do projeto.

Aqui está a pegada:

Arquivo -> Estrutura do projeto -> Módulos -> (selecione o módulo apropriado, se você tiver mais) -> Dependências -> + -> JAR ou bibliotecas

Rolland
fonte
3

Embora eu concorde com as respostas anteriores, é importante observar como acessar o código dessas bibliotecas externas.

Por exemplo, para acessar uma classe na biblioteca externa, você desejará usar a importação palavra-chave seguida pelo nome da biblioteca externa, continuada com notação de ponto até que a classe desejada seja alcançada.

Veja a imagem abaixo para ver como eu importo a classe CodeGenerationException da biblioteca quickfixj.

insira a descrição da imagem aqui

Crt
fonte