如何为H2数据库用户定义函数和存储过程指定java类版本?

时间:2012-07-10 15:50:31

标签: java stored-procedures javac h2 java-stored-procedures

此处:create_alias& user_defined_functions写道:

  

如果文件tools.jar在,则使用Sun javac编译器   类路径。如果没有,javac将作为一个单独的进程运行。

如何为H2数据库用户定义函数和存储过程指定java类版本 - 即外部javac的javac调用选项?你能不能强制使用外部javac(即使发现了jdk / tool.jar)?

例如,H2是针对java 1.5构建的;我在java 1.7上运行:

org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: org.h2.jdbc.JdbcSQLException: 
General error: 
"java.lang.UnsupportedClassVersionError: org/h2/dynamic/NEXT_PRIME : 
Unsupported major.minor version 51.0"; SQL statement:
CREATE ALIAS NEXT_PRIME AS $$
        String nextPrime(String value) {
            return new BigInteger(value).nextProbablePrime().toString();
        }
    $$; [50000-167]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
    at org.h2.message.DbException.get(DbException.java:158)
    at org.h2.message.DbException.convert(DbException.java:277)
    at org.h2.command.Command.executeUpdate(Command.java:234)
    at org.h2.server.TcpServerThread.process(TcpServerThread.java:328)
    at org.h2.server.TcpServerThread.run(TcpServerThread.java:149)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.UnsupportedClassVersionError: org/h2/dynamic/NEXT_PRIME : 
Unsupported major.minor version 51.0

感谢;

安德烈。

1 个答案:

答案 0 :(得分:0)

错误消息"Unsupported major.minor version 51.0"表示系统中有JDK或JRE 1.6,在某些情况下使用。另请参阅问题unsupported-major-minor-version-51-0