Jpa 如何从客户端访问javax/persistence/?
从目录Jpa 如何从客户端访问javax/persistence/?,jpa,jakarta-ee,classpath,Jpa,Jakarta Ee,Classpath,从目录target/classes运行javahwai.Main时,我得到一个错误: Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/Persistence at hwai.Main.main(Main.java:17) Caused by: java.lang.ClassNotFoundException: javax.persistence.Persistence at java.net
target/classes
运行javahwai.Main
时,我得到一个错误:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/Persistence
at hwai.Main.main(Main.java:17)
Caused by: java.lang.ClassNotFoundException: javax.persistence.Persistence
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
...
当我从目录target/test1/WEB-INF/classes
这是我在运行mvn包glassfish:redeploy
后的项目结构:
├── pom.xml
├── src
│ └── main
│ ├── java
│ │ ├── hwai
│ │ │ ├── helloWorld.java
│ │ │ ├── helloWorldResource.java
│ │ │ ├── Main.java
│ │ │ ├── StudentPOJO.java
│ │ │ ├── StudentRest.java
│ │ │ └── Todo.java
│ │ └── META-INF
│ │ └── persistence.xml
│ └── webapp
│ ├── index.html
│ └── WEB-INF
│ └── web.xml
└── target
├── classes
│ └── hwai
│ ├── helloWorld.class
│ ├── helloWorldResource.class
│ ├── Main.class
│ ├── StudentPOJO.class
│ ├── StudentRest.class
│ └── Todo.class
├── generated-sources
│ └── annotations
├── maven-archiver
│ └── pom.properties
├── maven-status
│ └── maven-compiler-plugin
│ └── compile
│ └── default-compile
│ ├── createdFiles.lst
│ └── inputFiles.lst
├── test1
│ ├── index.html
│ ├── META-INF
│ └── WEB-INF
│ ├── classes
│ │ └── hwai
│ │ ├── helloWorld.class
│ │ ├── helloWorldResource.class
│ │ ├── Main.class
│ │ ├── StudentPOJO.class
│ │ ├── StudentRest.class
│ │ └── Todo.class
│ ├── lib
│ │ ├── commonj.sdo-2.1.1.jar
│ │ ├── eclipselink-2.7.0.jar
│ │ ├── javax.json-1.0.4.jar
│ │ ├── javax.persistence-2.0.0.jar
│ │ └── validation-api-1.1.0.Final.jar
│ └── web.xml
└── test1.war
在网上搜索,我找到了,但都没有帮到我。我是个爪哇新手
pom.xml
包含
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
您需要了解类路径。您正在使用的任何库都必须位于类路径中,否则Java可能无法找到您的代码正在使用的类。这是Java的基础知识。在做像Maven和JPA这样复杂的事情之前先学习基础知识。谢谢从dir
target/test1/WEB-INF/classes调用java-cp./:../lib/*“hwai.Main
成功了。。。现在我没有为EntityManager提供名为…
的持久性提供程序,这可能是由于Persistence.xml放错了位置(虽然我把它放在类路径中),但这是另一回事…mkdir-p target/test1/WEB-INF/classes/META-INF
和cp Persistence.xml target/test1/WEB-INF/classes/META-INF阅读后得到了帮助
import javax.persistence.Persistence;