javac:package org.apache.derby.client.am不存在

javac:package org.apache.derby.client.am不存在,java,javac,derby,javadb,Java,Javac,Derby,Javadb,我正在尝试编译一个使用JavaDB/Derby的java程序。在命令行上,我可以运行 java org.apache.derby.tools.sysinfo 没有错误,但以下几行文件导致我的问题标题出现错误: import org.apache.derby.client.am.SqlException; 原因 package org.apache.derby.client.am does not exist 我已经重新安装了JavaDB,但我认为这无关紧要。我以前编译过这个项目,我知道我没

我正在尝试编译一个使用JavaDB/Derby的java程序。在命令行上,我可以运行

java org.apache.derby.tools.sysinfo
没有错误,但以下几行文件导致我的问题标题出现错误:

import org.apache.derby.client.am.SqlException;
原因

package org.apache.derby.client.am does not exist
我已经重新安装了JavaDB,但我认为这无关紧要。我以前编译过这个项目,我知道我没有安装JavaDB。我只是在项目文件夹的顶层有一个名为lib的目录,里面有derby的所有.jar文件。我很确定我也不需要设置任何环境变量

如何修复此错误?如果我需要提供更多的信息,我很乐意提供


我使用的是Windows7和jdk1.7,听起来像是JavaDBJAR不在类路径上的问题。确保在
javac
命令上使用
-cp
-classpath
指定它们。

需要解决此问题。因为错误在javac中,所以java命令是不相关的。检查您的类路径,如果仍然没有wokr,则显示确切的javac命令。
javac
需要知道在哪里可以找到该包。您可以通过设置类路径来指定它。或者使用
-cp
选项为什么要尝试导入Derby版本的SqlException。也许您可以只导入java.sql.SqlException?如果需要编译的文件在com/company/project中,而derby.jar文件在lib中(都是相对于当前目录的),那么-cp arg应该是什么样子?我尝试了以下方法:javac-cplib;com\company\project com\company\project*.java javac-cp com\company\project*.java javac-cp lib com\company\project*.java您需要列出每个jar文件,并用分号分隔(如果您在Linux/UNIX上,您将使用冒号),因此,您可以这样做:javac-cp lib\jarFileName1.jar;lib\jarFileName2.jar com\company\project*.javaI不知道JavaDB所需的特定jar的名称,但您应该列出它们,而不是jarFileName1.jar和jarFileName2.jarI。对不起,我本应该回复的,但是有很多工作要做。我尝试使用通配符指定所有的.java文件(-cp lib/*),但得到一个错误,说derbyclient.java是无效标志。因此,我尝试了derbyclient.java(-cp lib/derbyclient.java)并成功了。根据我的经验,通配符在那里并不起作用。很高兴这有帮助。