2015-04-21 71 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