Trying to create a java-se application using DataNucleus for dinamic generation of persistance unit by this code (which is in main method of Main class):
PersistenceUnitMetaData pumd = new PersistenceUnitMetaData("dynamic-unit", "RESOURCE_LOCAL", null);
pumd.addClassName("my.homework.entity.Procurement");
pumd.addProperty("datanucleus.ConnectionDriverName", "com.mysql.cj.jdbc.Driver");
pumd.addProperty("datanucleus.ConnectionURL", "jdbc:mysql://localhost:3306/" + schemaName + "?serverTimezone=Asia/Yekaterinburg");
pumd.addProperty("datanucleus.ConnectionUserName", login);
pumd.addProperty("datanucleus.ConnectionPassword", password);
pumd.addProperty("datanucleus.schema.autoCreateTables", "true");
EntityManagerFactory emf = new JPAEntityManagerFactory(pumd, null);
entityManager = emf.createEntityManager();
ProcurementService procurementService = new ProcurementService(entityManager);
In idea the code works well. But when I'm trying to run application as an .exe file in Windows, I'm getting the error:
ш■ы 21, 2020 11:46:04 PM org.datanucleus.api.ApiAdapterFactory getApiAdapter
SEVERE: Error : Could not find API definition for name "JPA". Perhaps you dont have the requisite datanucleus-api-XXX jar in the CLASSPATH?
Exception in thread "main" Error : Could not find API definition for name "JPA". Perhaps you dont have the requisite datanucleus-api-XXX jar in the CLASSPATH?
org.datanucleus.exceptions.NucleusUserException: Error : Could not find API definition for name "JPA". Perhaps you dont have the requisite datanucleus-api-XXX jar in the CLASSPATH?
at org.datanucleus.api.ApiAdapterFactory.getApiAdapter(ApiAdapterFactory.java:93)
at org.datanucleus.AbstractNucleusContext.<init>(AbstractNucleusContext.java:118)
at org.datanucleus.PersistenceNucleusContextImpl.<init>(PersistenceNucleusContextImpl.java:185)
at org.datanucleus.PersistenceNucleusContextImpl.<init>(PersistenceNucleusContextImpl.java:174)
at org.datanucleus.api.jpa.JPAEntityManagerFactory.initialiseNucleusContext(JPAEntityManagerFactory.java:909)
at org.datanucleus.api.jpa.JPAEntityManagerFactory.initialise(JPAEntityManagerFactory.java:515)
at org.datanucleus.api.jpa.JPAEntityManagerFactory.<init>(JPAEntityManagerFactory.java:380)
at my.homework.Main.main(Main.java:109)
Main.java:109:
EntityManagerFactory emf = new JPAEntityManagerFactory(pumd, null);
POM file:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.homework</groupId>
<artifactId>Dinar8</artifactId>
<version>1.0</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<repository>
<id>akathist-repository</id>
<name>Akathist Repository</name>
<url>http://www.9stmaryrd.com/maven</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-cells</artifactId>
<version>20.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.4.15.Final</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.10</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-api-jpa</artifactId>
<version>5.2.4</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-rdbms</artifactId>
<version>5.2.3</version>
</dependency>
</dependencies>
<pluginRepositories>
<pluginRepository>
<id>akathist-repository</id>
<name>Akathist Repository</name>
<url>http://www.9stmaryrd.com/maven</url>
</pluginRepository>
</pluginRepositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>
my.homework.Main
</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.akathist.maven.plugins.launch4j</groupId>
<artifactId>launch4j-maven-plugin</artifactId>
<version>1.7.25</version>
<executions>
<execution>
<id>l4j-console</id>
<phase>package</phase>
<goals>
<goal>launch4j</goal>
</goals>
<configuration>
<headerType>console</headerType>
<outfile>target/Project13.exe</outfile>
<jar>target/Dinar8-1.0-SNAPSHOT-jar-with-dependencies.jar</jar>
<dontWrapJar>false</dontWrapJar>
<errTitle>Error in launch4j plugin</errTitle>
<classPath>
<mainClass>my.homework.Main</mainClass>
<addDependencies>true</addDependencies>
</classPath>
<jre>
<path>%JAVA_HOME%</path>
<jdkPreference>jdkOnly</jdkPreference>
<minVersion>1.7.0</minVersion>
<runtimeBits>64/32</runtimeBits>
<maxHeapPercent>100</maxHeapPercent>
</jre>
<icon>src/main/resources/icon13.ico</icon>
<versionInfo>
<fileVersion>1.0.0.0</fileVersion>
<txtFileVersion>1.0.0.0</txtFileVersion>
<fileDescription>Excel file analysis</fileDescription>
<copyright>Khmelev Stanislav</copyright>
<companyName>comp</companyName>
<productVersion>1.0.0.0</productVersion>
<txtProductVersion>${project.version}</txtProductVersion>
<productName>Project13</productName>
<internalName>Project13</internalName>
<originalFilename>Project13.exe</originalFilename>
</versionInfo>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-maven-plugin</artifactId>
<version>5.0.2</version>
<configuration>
<api>JPA</api>
<log4jConfiguration>${basedir}/log4j.properties</log4jConfiguration>
<verbose>true</verbose>
</configuration>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
What should I do to remove this error?
Putting all three jar files:
into the directory with .exe solving the problem.