javac 类路径问题
javac CLASSPATH issue
这似乎很琐碎。但我被困了一段时间。
我的CLASSPATH
:
jerry@jerry-OptiPlex-790:~/Desktop/SQLLite-experiment/java$ echo $CLASSPATH
.:./*:/home/jerry/Desktop/SQLLite-experiment/java/jsqlparser-0.7.0.jar
ll
的输出:
jerry@jerry-OptiPlex-790:~/Desktop/SQLLite-experiment/java$ ll
total 980
drwxrwxr-x 2 jerry jerry 4096 Apr 21 19:25 ./
drwxrwxr-x 7 jerry jerry 4096 Apr 21 17:05 ../
-rw-rw-r-- 1 jerry jerry 991221 Apr 21 17:25 jsqlparser-0.7.0.jar
-rw-rw-r-- 1 jerry jerry 181 Apr 21 19:24 test.java
我的 test.java
文件:
import net.sf.jsqlparser.statement.StatementVisitor;
import net.sf.jsqlparser.*;
public class test {
public static void main(String[] args) {
System.out.println("Hello");
}
}
javac
的输出:
jerry@jerry-OptiPlex-790:~/Desktop/SQLLite-experiment/java$ javac test.java
test.java:1: error: package net.sf.jsqlparser.statement does not exist
import net.sf.jsqlparser.statement.StatementVisitor;
^
test.java:2: error: package net.sf.jsqlparser does not exist
import net.sf.jsqlparser.*;
^
2 errors
下面的命令也会产生同样的错误:
jerry@jerry-OptiPlex-790:~/Desktop/SQLLite-experiment/java$ javac -cp "jsqlparser-0.7.0.jar:." test.java
jsqlparser 的来源:
http://jsqlparser.sourceforge.net/docs/
谁能帮我解决这个问题?我也尝试在 IntelliJ 上使用这个库,但它没有被识别。我遵循了添加外部库的标准程序,如:How to add external library in IntelliJ IDEA?
FWIW 我使用 tmux
。希望这不是 CLASSPATH 问题。
查看 here 了解如何使用命令行选项为任何 java sdk 工具设置类路径 - java、javac。该页面显示了如何设置环境变量 CLASSPATH 以及如何使用开关 -classpath。
在您的情况下,如果您的 jar 与源文件位于同一目录中,那么您将需要这样的命令来编译 -
javac -classpath . MyClass.java
这对 运行
java -classpath . MyClass
您还可以在类路径中提供 jar 文件的完整路径,并添加多个目录和 jar。如-classpath .:/path/to/my.jar:/some/other/directory
好的,这是我在浪费时间后想出的解决方案。看起来很愚蠢但仍然:...我只需要 unzip
jar
并使用提取的 jar
目录中 lib
目录中的 jar
文件。 =15=]
这似乎很琐碎。但我被困了一段时间。
我的CLASSPATH
:
jerry@jerry-OptiPlex-790:~/Desktop/SQLLite-experiment/java$ echo $CLASSPATH
.:./*:/home/jerry/Desktop/SQLLite-experiment/java/jsqlparser-0.7.0.jar
ll
的输出:
jerry@jerry-OptiPlex-790:~/Desktop/SQLLite-experiment/java$ ll
total 980
drwxrwxr-x 2 jerry jerry 4096 Apr 21 19:25 ./
drwxrwxr-x 7 jerry jerry 4096 Apr 21 17:05 ../
-rw-rw-r-- 1 jerry jerry 991221 Apr 21 17:25 jsqlparser-0.7.0.jar
-rw-rw-r-- 1 jerry jerry 181 Apr 21 19:24 test.java
我的 test.java
文件:
import net.sf.jsqlparser.statement.StatementVisitor;
import net.sf.jsqlparser.*;
public class test {
public static void main(String[] args) {
System.out.println("Hello");
}
}
javac
的输出:
jerry@jerry-OptiPlex-790:~/Desktop/SQLLite-experiment/java$ javac test.java
test.java:1: error: package net.sf.jsqlparser.statement does not exist
import net.sf.jsqlparser.statement.StatementVisitor;
^
test.java:2: error: package net.sf.jsqlparser does not exist
import net.sf.jsqlparser.*;
^
2 errors
下面的命令也会产生同样的错误:
jerry@jerry-OptiPlex-790:~/Desktop/SQLLite-experiment/java$ javac -cp "jsqlparser-0.7.0.jar:." test.java
jsqlparser 的来源: http://jsqlparser.sourceforge.net/docs/
谁能帮我解决这个问题?我也尝试在 IntelliJ 上使用这个库,但它没有被识别。我遵循了添加外部库的标准程序,如:How to add external library in IntelliJ IDEA?
FWIW 我使用 tmux
。希望这不是 CLASSPATH 问题。
查看 here 了解如何使用命令行选项为任何 java sdk 工具设置类路径 - java、javac。该页面显示了如何设置环境变量 CLASSPATH 以及如何使用开关 -classpath。
在您的情况下,如果您的 jar 与源文件位于同一目录中,那么您将需要这样的命令来编译 -
javac -classpath . MyClass.java
这对 运行
java -classpath . MyClass
您还可以在类路径中提供 jar 文件的完整路径,并添加多个目录和 jar。如-classpath .:/path/to/my.jar:/some/other/directory
好的,这是我在浪费时间后想出的解决方案。看起来很愚蠢但仍然:...我只需要 unzip
jar
并使用提取的 jar
目录中 lib
目录中的 jar
文件。 =15=]