Como usar um curinga no caminho de classe para adicionar vários frascos? [duplicado]

StackOverflow https://stackoverflow.com/questions/1237093

  •  11-09-2019
  •  | 
  •  

Pergunta

Esta questão já tem uma resposta aqui:

Eu estive usando tantas bibliotecas 3o partido (arquivos JAR) que meu CLASSPATH é completamente desarrumada como eu tem que incluir o caminho para cada arquivo jar que eu uso.

Eu estive me perguntando se existe uma maneira de incluir todos os arquivos jar em uma pasta usando curinga (*) operador (como * .jar). Mas parece não estar funcionando. Existe alguma outra maneira que pode encurtar o CLASSPATH que atualmente se parece com um ensaio;?.) No meu PC

Foi útil?

Solução

De: http: //java.sun. com / JavaSE / 6 / docs / technotes / tools / windows / classpath.html

entradas de caminho de classe pode conter o * caráter basename curinga, que é considerado equivalente a especificar uma lista de todos os arquivos no diretório com o .jar extensão ou .jar. Por exemplo, a entrada foo/* caminho de classe especifica todos os arquivos JAR no diretório chamado foo. Uma entrada de classpath consiste simplesmente de se expande * a uma lista de todos os arquivos jar no diretório atual.

Isso deve funcionar em Java6, não tenho certeza sobre Java5

(Se parece que não funciona como esperado, tente colocar aspas, por exemplo:. "foo/*")

Outras dicas

Isso funciona no Windows:

java -cp "lib/*" %MAINCLASS%

onde %MAINCLASS%, claro, é a classe que contém o método principal.

Como alternativa:

java -cp "lib/*" -jar %MAINJAR%

onde %MAINJAR% é o arquivo jar para o lançamento através do seu manifesto interno.

baseName wild cards foram introduzidos no Java 6; ou seja, "foo / *" significa todos os arquivos ".jar" no diretório "foo".

Em versões anteriores do Java que não suportam classpaths curinga, tenho recorrido ao uso de um shell invólucro script para montar uma Classpath por 'englobamento' um padrão e deturpação dos resultados para inserir ':' caracteres nos pontos apropriados. Isso seria difícil de fazer em um arquivo BAT ...

Se você quer dizer que você tem um ambiente variável chamada CLASSPATH, eu diria que é o seu erro. Eu não tenho uma coisa dessas em qualquer máquina com a qual eu desenvolver Java. CLASSPATH está tão ligada a um projeto em particular que é impossível ter um único CLASSPATH, correta que funcione para todos.

I set CLASSPATH para cada projeto usando um IDE ou Ant. Eu faço um monte de desenvolvimento web, de modo que cada WAR e EAR usa seu próprio CLASSPATH.

É ignorado por IDEs e servidores de aplicativos. Por que você tem isso? Eu recomendo excluí-lo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top