使用Jackcess Encrypt会导致“NoClassDefFoundError” Cobertura除外 [英] Using Jackcess Encrypt causes "NoClassDefFoundError" exception for Cobertura

查看:266
本文介绍了使用Jackcess Encrypt会导致“NoClassDefFoundError” Cobertura除外的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试用一个非常简单的程序读取带有jet编码的mdb文件。

I'm trying to read a mdb file with jet encode with a very simple program.

import java.io.File;
import java.io.IOException;

import com.healthmarketscience.jackcess.CryptCodecProvider;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.DatabaseBuilder;
import com.healthmarketscience.jackcess.Row;
import com.healthmarketscience.jackcess.Table;

public class ReadFile {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {
        File myDbFile = new File("C:\\Users\\jcace\\Downloads\\TSC\\DB1.mdb");
        Database db = new DatabaseBuilder(myDbFile)
                  .setCodecProvider(new CryptCodecProvider())
                  .open();
    Table table = db.getTable("VBV");
    for(Row row : table) {
        System.out.println("Look ma, a row: " + row);
      }
    } catch (IOException e){
        e.printStackTrace();
    }
   }
}

我有以下图书馆额外费用

and I have the following library extras


  • commons-logging-1.2 \ commons-logging-1.2.jar
  • commons-logging-1.2 \\ \\ commons-logging-1.2-javadoc.jar
  • commons-lang-2.6 \ commons-lang-2.6.jar
  • jackcess-encrypt-2.1.2.jar
  • hamcrest-core-1.3.jar
  • junit-4.11.jar
  • jackcess-2.1.0.jar
  • bcprov-jdk15on-1.49。 jar
  • commons-logging-1.2\commons-logging-1.2.jar
  • commons-logging-1.2\commons-logging-1.2-javadoc.jar
  • commons-lang-2.6\commons-lang-2.6.jar
  • jackcess-encrypt-2.1.2.jar
  • hamcrest-core-1.3.jar
  • junit-4.11.jar
  • jackcess-2.1.0.jar
  • bcprov-jdk15on-1.49.jar

当我运行程序时,我遇到以下错误

And when I ran the program I have the following Error

Exception in thread "main" java.lang.NoClassDefFoundError: 
net/sourceforge/cobertura/coveragedata/TouchCollector
at com.healthmarketscience.jackcess.CryptCodecProvider.__cobertura_init(CryptCodecProvider.java)
at com.healthmarketscience.jackcess.CryptCodecProvider.<clinit>(CryptCodecProvider.java)
at HelloWorld.main(HelloWorld.java:17)
Caused by: java.lang.ClassNotFoundException: net.sourceforge.cobertura.coveragedata.TouchCollector
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 3 more

我尝试使用以下Bouncy隐藏库

I try with the following Bouncy crypt library


  • bcprov -jdk15on-157.jar
  • bcprov-jdk15on-152.jar
  • bcprov-jdk15on-151.jar
  • bcprov-jdk15on-150.jar
  • bcprov-jdk15on-149.jar
  • bcprov-jdk15on-157.jar
  • bcprov-jdk15on-152.jar
  • bcprov-jdk15on-151.jar
  • bcprov-jdk15on-150.jar
  • bcprov-jdk15on-149.jar

推荐答案

最后我解决了改变库文件的问题-encrypt-2.1.2.jar by jackcess-encrypt-2.1.0.jar。

Finally I solved my problem changing the library jackcess-encrypt-2.1.2.jar by jackcess-encrypt-2.1.0.jar.

我不知道为什么但这使我有可能完成这项工作。

I don´t know why but this made me possible did this work.

这篇关于使用Jackcess Encrypt会导致“NoClassDefFoundError” Cobertura除外的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆