Eu tenho 3 arquivos jar e um arquivo .java que depende desses arquivos jar. Como compilar o arquivo .java com esses arquivos jar usando um prompt de comando?
java -cp ".;magic.jar" Foo
está ok java Foo -cp ".;magic.jar"
não é.
Eu tenho 3 arquivos jar e um arquivo .java que depende desses arquivos jar. Como compilar o arquivo .java com esses arquivos jar usando um prompt de comando?
java -cp ".;magic.jar" Foo
está ok java Foo -cp ".;magic.jar"
não é.
Respostas:
Você pode incluir seus arquivos jar no comando "javac" usando a opção "-cp".
javac -cp ".:/home/path/mail.jar:/home/path/servlet.jar;" MyJavaFile.java
Em vez de "-cp", você também pode usar "-classpath"
javac -classpath ".:/home/path/mail.jar:/home/path/servlet.jar:" MyJavaFile.java
Você pode incluir os jars toda vez que compilar, configurando a variável de ambiente "CLASSPATH" corretamente. A variável de ambiente armazenará o caminho em que os jars e classes que precisam ser usados para compilar / executar qualquer arquivo java. Você não precisará incluir os frascos individualmente toda vez que compilar seu arquivo.
Máquinas diferentes têm métodos diferentes para definir o caminho de classe como uma variável de ambiente. Os comandos para Windows, Linux, etc são diferentes.
Você pode encontrar mais detalhes neste blog .
http://javarevisited.blogspot.com/2011/01/how-classpath-work-in-java.html
javac -classpath ".:/home/path/mail.jar;/home/path/servlet.jar" MyJavaFile.java
trabalhou para mim. Eu estava usando mac. Eu li em algum lugar que ':' é usado para unix.
.:
faz? desculpe se é uma pergunta idiota, mas não é óbvio para mim.
javac -cp .:/home/path/mail.jar:/home/path/servlet.jar; MyJavaFile.java
Por favor, tente no Linux
javac -cp jarfile source file
EXEMPLO: -
javac -cp .:/jars/* com/template/*.java
.:/jars
substituído pelo diretório em que meus arquivos JAR estão localizados, recebo a mensagem de erro javac: invalid flag: /location/of/first/jar/file.jar
.
A sintaxe funcionará no comando windows dos:
javac -cp ".;first.jar;second.jar;third.jar" MyJavaFile.java
Tente adicionar todos os arquivos jar de dependência ao caminho da sua classe por meio de configurações de variáveis de ambiente ou use as etapas abaixo:
Defina o caminho da classe para seus arquivos jar de dependência, conforme mostrado abaixo:
set classpath=C:\Users\sarath_sivan\Desktop\jars\servlet-api.jar; C:\Users\sarath_sivan\Desktop\jars\spring-jdbc-3.0.2.RELEASE; C:\Users\sarath_sivan\Desktop\jars\spring-aop-3.0.2.RELEASE;
Agora, você pode compilar seu arquivo java. (comando javac YourJavaFile.java
:)
Espero que isso resolva seu problema de dependência.
Os seguintes são passos,
Copie todos os jars e seu arquivo .java na mesma pasta (será fácil mencionar nomes de arquivos em vez de mencionar o caminho longo. Embora você possa manter jar e .java em pastas separadas).
Compilar,
javac -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>.java
Executar,
java -cp .:<file_1_name>.jar:<file_2_name>.jar <prog_name>
Eu espero que isso ajude!
Isso criará o arquivo .class:
javac -classpath "[jarname with specified path]" [java filename]
Isso executará o arquivo de classe:
java -cp [jarname with specified path]: [java filename]
javac -classpath "/home/scorncer/Downloads/spark-core-2.3.jar" MyFile.java
e correr ** java -cp /home/scorncer/Downloads/spark-core-2.3.jar: MyFile.java also i tried java -cp /home/scorncer/Downloads/spark-core-2.3.jar: MyFile
Você precisa especificar as dependências no tempo de compilação e no tempo de execução
Para compilar, use este formato
javac -cp "*.jar;classfile_path" filename.java
Exemplo:
javac -cp "ojdbc6.jar;c:\programs" Main.java
javac -cp jars/jar1:jars/jar2:jars/jar3 abc.java
Se você estiver usando o Ubuntu:
/opt/JavaServices/sqlite $ export CLASSPATH=/opt/JarFiles/XXXX.jar:/opt/JarFiles/XXXX.jar:/opt/JavaServices/;javac SQLiteSample.java
Ir para o local da pasta (estrutura fora do pacote)
/opt/JavaServices $ export CLASSPATH=/opt/JarFiles/XXXXX.jar:/opt/JarFiles/XXXXX.jar:/opt/JavaServices/;java sqlite.SQLiteSample
Nota: Consulte os locais dos arquivos e os nomes dos pacotes
Para Windows