启动dbserver.bat
@java -cp ../hsqldb-1.8.0.jar org.hsqldb.Server -database.0 file:mydb -dbname.0 xdb
如下报错
1、java.net.BindException: Address already in use: JVM_Bind
问题原因:
(1)Address already in use hsqldb需要使用的端口被其他程序占用了。
(2)用netstat -ano 命令查看端口占用情况
----------------------------------------------------------------------------------
Proto Local Address Foreign Address State PID
----------------------------------------------------------------------------------
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1236
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1120
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 1236
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:1071 0.0.0.0:0 LISTENING 1200
TCP 0.0.0.0:1521 0.0.0.0:0 LISTENING 1292
TCP 0.0.0.0:2030 0.0.0.0:0 LISTENING 292
TCP 0.0.0.0:2100 0.0.0.0:0 LISTENING 1292
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 288
TCP 0.0.0.0:3339 0.0.0.0:0 LISTENING 1236
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 1292
TCP 0.0.0.0:9001 0.0.0.0:0 LISTENING 3664
----------------------------------------------------------------------------------
(3)经过核查,发现启动的tomcat服务把9001端口服务占用了, 而hsqldb启动默认端口为9001。
解决方案:
(1)net stop tomcat 停止tomcat服务
(2)更改hsqldb server端口,在当前目录下建立server.properties文件,内容如下
#begin of 'server.properties' file #数据库服务的监听端口 server.port=9002 #定义服务名称,也即数据库名称。数据库链接的URL即为 #jdbc:hsqldb:hsql://localhost:9002/bitan。 server.dbname.0=xdb # 该服务在硬盘上的相对或绝对路径。file:后面可以跟相#对或绝对路径,如file:bitan表示数据文件为当前目录下的bitan.*文件。服务名和路径之间通过小数点后的数字关联。比如database.0与#dbname.0关联,database.1与dbname.1关联,……, database.n与dbname.n关联。 server.database.0=file:d:/xdb #mounts a 'file_in_jar' database with alias 'restest' #database connection url would be 'jdbc:hsqldb:hsql://host:1234/restest' #server.database.1=res:/mypackage/test #server.dbname.1=restest #mounts a 100% in-memory (transient) database with alias 'memtest' #database connection url would be 'jdbc:hsqldb:hsql://host:1234/memtest' #server.database.2=mem:test #server.dbname.2=memtest #... #server.database.n=... #server.dbname.n=... server.silent=true #end of 'server.properties' file
2、java.lang.IllegalAccessError: try to access method java.util.Calendar.setTimeInMillis(J)V from class org.hsqldb.HsqlDateTime
问题原因:
(1)java版本问题:java -version 发现为 java version "1.3.0"
(2)由于安装了orcale9i,系统将oracle下的jre1.3.0配置到环境变量中。
解决方案:打开环境变量删除oracle目录下的jre环境变量,最终使java version到 "1.6.0_02"