使用以下命令,我的代码编译通过:
javac -cp "../lib/*" AvroReader.java
(lib是我放置jar文件的位置)
在运行时,以下行出现了ClassNotFoundException
:
DatumReader<?> dtmrdr = new GenericDatumReader();
尽管已导入,它仍然提示找不到org.apache.avro.generic.GenericDatumReader
。
为什么会发生这种情况?
使用以下命令,我的代码编译通过:
javac -cp "../lib/*" AvroReader.java
(lib是我放置jar文件的位置)
在运行时,以下行出现了ClassNotFoundException
:
DatumReader<?> dtmrdr = new GenericDatumReader();
尽管已导入,它仍然提示找不到org.apache.avro.generic.GenericDatumReader
。
为什么会发生这种情况?
导入与加载类或设置CLASSPATH无关。
请尝试这样做:
java -cp .;../lib/* Generator
在CLASSPATH的第一个条目使用点号'.'
,假定Generator.class
文件存在于运行Java的目录中,并且/lib
在该目录的上一级目录。如果这些都不正确,请进行调整。
java -cp .:"../lib/*" Generator
命令。 - Net Dawgjava -cp "lib directory where i put all the jars" MainClassOfYourApplication
在你使用以下命令编译后:
javac -cp "lib directory where i put all the jars" AvroReader.java
First step(compile all the needed java files): javac -cp "path/to/jars/*" AvroReader.java //here you should include all the java files not yet compiled but which you need to run your app
Second step: java -cp "path/to/jars/*" package.subpackage1.subpackage2.Generator
`javac -cp "jar directory" AvroReader.java`
`javac Generator.java`
`java Generator`
我尝试了你建议的java -cp "jar directory" Generator
,但现在它说找不到Generator。 - Dao Lamjava Generator
,它不会工作,因为你没有指定类路径。然而,你的评论似乎与你的问题中的信息相矛盾... - jahroyjavac -cp jar_file1.jar:jar_file2:jar_file3.jar:. java_program_name.java
java -cp new_mail_api.jar:activation.jar:additional.jar:.java_program_name
在Windows系统上编译和执行带有外部jar文件的Java文件:
javac -cp jar_file1.jar;jar_file2;jar_file3.jar;. java_program_name.java
java -cp new_mail_api.jar;activation.jar;additional.jar;.java_program_name
java Generator
命令来执行它。 Generator是一个类,它调用了AvroReader.java中的一个方法。 - Dao Lam