0

我正在使用本教程hyperjaxb设置在 eclipse 中运行。到目前为止,我已经得到了and ,但它还没有触发在数据库中创建表,并且不清楚我应该在 eclipse 目录结构中的哪个位置找到我创建的用于从上面的教程链接。 如何更改我的 Eclipse 配置以使这些事情发生?marshalunmarshalhbm2ddlMain.javaTestFunctions.java

这是我的 main.java:

package maintest;

public class Main {
    public static void main(String[] args) {
        TestFunctions mf = new TestFunctions();
        try {mf.setUp();} catch (Exception e) {e.printStackTrace();}
        mf.unmarshal();
        mf.setUpPersistence();
        Long id = mf.saveToDatabase();
        System.out.println("hjid is: "+id);
        mf.loadFromDatabase(id);
        mf.marshal();
    }
}

TestFunctions.java您可以通过单击此链接阅读更冗长的代码。请注意,尽管代码在我的机器上是左对齐的,但文件共享站点错误地将代码居中对齐。

persistence.properties是:

hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.username=someusername
hibernate.connection.password=somepassword
hibernate.connection.url=jdbc:mysql://localhost/sometestdatabase
hibernate.hbm2ddl.auto=create-drop
hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
hibernate.jdbc.batch_size=0  

当我右键单击Main.java并单击时,我目前正在获取以下堆栈跟踪run as.. java application

Exception in thread "main" java.lang.NoClassDefFoundError: maintest/TestFunctions
    at maintest.Main.main(Main.java:7)
Caused by: java.lang.ClassNotFoundException: maintest.TestFunctions
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 1 more   

这是目录结构:

4

1 回答 1

2

对于您的直接问题:如果Main.java驻留在src/main/java并需要调用TestFunctions.java,那么正常的 Maven 开发将放入TestFunctions.javasrc/main/java不是src/test/javasrc/main(根据 中的任何内容,拥有您的“真实”代码(即 中的内容)通常是个坏主意src/test

于 2014-10-13T22:07:26.977 回答