我看过以下主题,但它们没有发布我问题的解决方案:
你好
在我的项目中,我正在使用Maven,我还想在嵌入式模式下使用Derby数据库。因此我更新了pom。xml文件由以下用户创建:
<dependencies>
...
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.12.1.1</version>
</dependency>
</dependencies>
Maven成功下载了依赖项。在Maven依赖项下的Eclipse构建路径中可以看到它,如derby-10.12.1.1。罐子
然后我创建了测试类:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.apache.derby.jdbc.EmbeddedDriver;
public class DerbyTest {
public static void main (String...strings){
try {
DriverManager.registerDriver(new EmbeddedDriver());
Connection conn = DriverManager.getConnection("jdbc:derby:test2;create=true");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这给了我下面的类NotFoundException
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/derby/jdbc/EmbeddedDriver
at DerbyTest.main(DerbyTest.java:10)
Caused by: java.lang.ClassNotFoundException: org.apache.derby.jdbc.EmbeddedDriver
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
问题是——为什么?该类位于生成路径中。Eclipse没有给我任何编译时错误警告——它在编写过程中看到该类。依赖项的作用域是compile。JVM在查找类时不应该有问题。另外,JVM与我正在使用的其他依赖项(jTest、Hibernate、SQLite)没有问题。
后脚本:我试图解决这个难题:
>
然后我创建了另一个新的Project2,其测试类与之前相同。我在本地存储库(C:\Users\User\.m2\repository\org\apache\derby\derby\10.12.1.1)中找到了Maven版本的Debry,并手动添加了derby-10.12.1.1。jar到新项目的构建路径。在运行一个程序后,我得到了与使用Maven完全相同的错误。
我使用手动下载的Derby(从点1.),并通过在我的主要项目中编辑pom.xml文件来创建外部存储库:
.
<repositories>
<repository>
<id>derby-repo</id>
<url>file://C:/libs</url>
</repository>
</repositories>
<dependencies>
...
<dependency>
<groupId>derbygroupid</groupId>
<artifactId>derby</artifactId>
<version>0.0.1</version>
</dependency>
</dependencies>
Maven成功地在Eclipse的构建路径中的Maven依赖项下添加了一个依赖项derby-0.0.1。罐子运行一个程序后,成功地创建了数据库
这通常可以解决问题,但问题是,为什么Maven不能自己处理?
编辑:对于那些感兴趣的人。我暂时解决了使用旧版本的德比的问题:
<dependencies>
...
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.11.1.1</version>
</dependency>
</dependencies>
这个版本可以但我还是不知道为什么10.12.1.1不行
我面临着同样的问题,通过恢复到10.11.1.1版本的驱动程序,一切都正常。
尽管我还不明白为什么会这样:自从Java1.6之后,您就可以调用DriverManager了。即使不手动注册驱动程序,getConnection()也会成功。尝试忽略创建EmbeddedDriver实例来注册驱动程序并只获取连接对象。我在调用类时遇到了相同的异常。forName(“org.apache.derby.jdbc.EmbeddedDriver”),并简单地将其删除。
但是,关闭Derby将注销驱动程序。所以如果你打算重新启动德比,这个技巧只会起一次作用,直到你关闭德比。在关机时传递“注销=false”将确保德比驱动程序在初始注册后没有被删除。
我正在使用相同Maven包的10.15.2.0,在我的pom中没有更多的derby包。xml。
我也面临同样的问题,但我克服了。。。
因为我在intellij上工作,我去了
文件-
单击加号并选择JAR和dependencies
打开jdk的路径,并从中添加以下jar文件1。德比。罐子2。德比客户机。罐子3。德比网。罐子4。德比工具。罐子5。德比。罐子
单击应用。成功了!
对于Eclipse,试试这个。
无法连接。无法建立到jdbc的连接:derby://localhost:1527/sample使用组织。阿帕奇。德比。jdbc。ClientDriver(DERBY SQL错误:错误代码:40000,SQLSTATE:XJ040,SQLERRMC:无法使用类加载器sun.misc.Launcher启动数据库'sample'$AppClassLoader@1d44bcfa,有关详细信息,请参见下一个
我正试图让我的Grails应用程序使用logback插件登录。根据文档说明,以下是我迄今为止所做的工作: 然后我运行了一个。当我运行一个时,我得到一个绝对巨大的堆栈跟踪,如下所示: 此外,在我的GGTS IDE中,添加到中的两个导入语句出现了编译器错误。听起来我的Grails应用程序中仍然有Log4j引用,并且运行将Log4j JAR从我的类路径中删除。这可能解释了堆栈跟踪。但这并不能解释为什么G
我在Windows上的netbeans项目中使用Derby遇到了麻烦。我刚刚下载并配置了Derby,并将CLASSPATH变量设置为 当我运行命令时 一切都和预期的一样,我得到了输出 等等。 现在,当我运行一个直接从命令提示符使用derby的Java程序时,一切都运行得很好: 但当我尝试从Netbeans运行完全相同的程序时,我得到以下错误 为什么驱动程序在命令提示符下工作,而不是在NetBean
我需要在Java中使用JDBC做一些简单的实验,我认为运行derby数据库应该是实现这一点的简单途径。 我已经安装了derby,并使用“ij”工具创建了一个表并将一些数据放入其中。我也可以用ij读回数据。 然而,当我试图使用实际的Java代码连接到此时,事情变得很糟糕。这是我尝试了几件事情的情况之一,每件事都以不同的方式失败,所以我希望你们都能原谅这有点模糊。但这些是我迄今为止尝试/失败的要点。
填写我的Jasper报告时,我得到以下例外: 我已经添加了(https://search.maven.org/#search|ga | 1 | a:“commons javaflow”)——但这没有帮助。在哪里可以找到这门课? 编辑:重复问题标签的一条注释:这不是关于ClassNotFoundException的一般问题——这是一个关于Jasper Reports/Apache Commons J
Apache Kafka:分布式消息传递系统 Apache Storm:实时消息处理 我们如何在实时数据管道中使用这两种技术来处理事件数据? 在实时数据管道方面,我觉得两者做的工作是一样的。如何在数据管道上同时使用这两种技术?