2015-04-21 69 views
2

這似乎很微不足道。但是我陷入了一段時間。javac CLASSPATH問題

CLASSPATH

輸出的
[email protected]:~/Desktop/SQLLite-experiment/java$ echo $CLASSPATH 
.:./*:/home/jerry/Desktop/SQLLite-experiment/java/jsqlparser-0.7.0.jar 

ll

[email protected]:~/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文件:

輸出 javac
import net.sf.jsqlparser.statement.StatementVisitor; 
import net.sf.jsqlparser.*; 

public class test { 

    public static void main(String[] args) { 
     System.out.println("Hello"); 
    } 
} 

[email protected]:~/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 

下面的命令也產生了同樣的錯誤:

[email protected]:~/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問題的問題。

+0

當你在test.java中導入net.sf.jsqlparser.statement.StatementVisitor時,它是否給出錯誤? – underdog

+0

哦,我用vim。所以,不確定它在IDE中的表現如何。 – Jerry

回答

0

好的,這是我在浪費時間後想出的解決方案。看起來很愚蠢,但仍然:...我只需要unzipjar並使用提取的jarlib目錄中的jar文件。

2

here如何使用命令行選項設置類路徑到任何java sdk工具 - java,javac。該頁面顯示如何設置環境變量CLASSPATH以及如何使用switch -classpath。

在你的情況,如果你有在同一目錄作爲源文件的JAR,那麼你就需要這樣的命令編譯 -

javac -classpath . MyClass.java 

這種運行

java -classpath . MyClass 

您還可以在類路徑中提供jar文件的完整路徑,並添加多個目錄和jar。比如-classpath。:/ path/to/my.jar:/ some/other/directory

+0

我完全意識到這一點。但是,正如問題中所述,我所嘗試的程序(包括您提到的程序)對我而言並不起作用。 – Jerry

+0

嘗試更換罐子 – underdog

+0

是的,我把罐子換成另一個'mail.jar';來自oracle的標準郵件jar。它運行良好。所以,我想這是'jsqlparser' jar文件的問題。 – Jerry