witam
Potrzebuje uruchomić prosty skrypt w javie który zapisuje csv do bazy mdb.
Znalazłem coś co mogło by mi się przydać
Kompiluje go przy pomocy :
javac -cp ./lib/jackcess-2.1.11.jar:./lib/commons-csv-1.5.jar Jackcess.java
jednak jak chce uruchomić z przygotowanym plikiem csv to dostaje błąd chyba biblioteki commons-csv.

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/csv/CSVFormat
at Jackcess.main(Jackcess.java:58)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.csv.CSVFormat
at jdk.internal.loader.BuiltinClassLoader.loadClass(java.base@9-internal/BuiltinClassLoader.java:366)
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(java.base@9-internal/ClassLoaders.java:184)
at java.lang.ClassLoader.loadClass(java.base@9-internal/ClassLoader.java:419)
... 1 more

Będę wdzięczny za jakąkolwiek wskazówkę.
Próbowałem dać również uruchomic. podając classpath tj.
java -cp ./lib/commons-csv-1.5.jar:commons-lang-2.6.jar:jackcess-2.1.11.jar:commons-codec-1.11.jar:Jackcess.class Jackcess.main /home/bnawrocki/test.csv accdb
niestety otrzymuje komunikat
Error: Could not find or load main class Jackcess.main

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;

//import com.healthmarketscience.jackcess.*;
import com.healthmarketscience.jackcess.ColumnBuilder;
import com.healthmarketscience.jackcess.Database;
import com.healthmarketscience.jackcess.Database.FileFormat;
import com.healthmarketscience.jackcess.DatabaseBuilder;
import com.healthmarketscience.jackcess.DataType;
import com.healthmarketscience.jackcess.Table;
import com.healthmarketscience.jackcess.TableBuilder;

public class Jackcess {

    public static void main(String[] args) throws IOException {

        if (args.length < 2) {
            System.out.println("Usage: Jackcess <input.csv> <accdb|mdb>");
            System.exit(0);
        }

        String csvPath = args[0];
        String dbFormat = args[1];
        String filepath = csvPath.substring(0, csvPath.lastIndexOf("."));
        String filename = filepath.substring(filepath.lastIndexOf("/") + 1, filepath.length());
        String dbExt = "";
        int line = 1;
        boolean dbCreate = false;

        switch (dbFormat) {
            case "accdb":
                dbExt = ".accdb";
                dbFormat = "V2010";
                break;
            case "mdb":
                dbExt = ".mdb";
                dbFormat = "V2003";
                break;
            default:
                System.out.println("Unrecognized database format.");
                System.exit(0);
                break;
        }

        BufferedReader csvData = new BufferedReader(new FileReader(csvPath));
        String firstline = csvData.readLine();
        String[] headers = {};
        headers = firstline.split("\t");
        Iterable<CSVRecord> records = CSVFormat.TDF.parse(csvData);
        List<Object> values = new ArrayList<>();

        // create first database >>
        int dbVolume = 0;
        File f = new File(filepath + '-' + dbVolume + dbExt);
        DatabaseBuilder dbb = new DatabaseBuilder(f)
        .setFileFormat(FileFormat.valueOf(dbFormat)).setAutoSync(false);

        Database db = dbb.create();

        TableBuilder bldr = new TableBuilder("export");

        for(String header : headers) {

            bldr.addColumn(
                new ColumnBuilder(header, DataType.TEXT)
                .setLengthInUnits(255)
                .setCompressedUnicode(true)
            );

        }

        Table tbl = bldr.toTable(db);

        db.flush();
        long prevFileSize = f.length();
        long currFileSize = 0;
        // << create first database 

        for (CSVRecord record : records) {

            if(dbCreate == true) {

                dbCreate = false;
                db.close();

                // create nth database >>
                dbVolume++;
                f = new File(filepath + '-' + dbVolume + dbExt);
                dbb = new DatabaseBuilder(f)
                .setFileFormat(FileFormat.valueOf(dbFormat)).setAutoSync(false);

                db = dbb.create();

                bldr = new TableBuilder("export");

                for(String header : headers) {

                    bldr.addColumn(
                        new ColumnBuilder(header, DataType.TEXT)
                        .setLengthInUnits(255)
                        .setCompressedUnicode(true)
                    );

                }

                tbl = bldr.toTable(db);

                db.flush();
                prevFileSize = f.length();
                currFileSize = 0;
                // << create nth database

            }

            values.clear();
            record.forEach(x -> values.add(x));
            tbl.addRow(values.toArray());

            if((line % 100000) == 0) {

                db.flush();
                currFileSize = f.length();
                System.out.printf("%d (+%d)%n", currFileSize, currFileSize - prevFileSize);
                prevFileSize = currFileSize;

                if(currFileSize >= 2000000000) { //~93% of 2 GB (2147483648 B) considering the last write
                    dbCreate = true;
                }

            }

            line++;

        }

        db.close();

    }

}