无法启动 HSQLDB(java.net.BindException:地址已在使用中)
Posted
技术标签:
【中文标题】无法启动 HSQLDB(java.net.BindException:地址已在使用中)【英文标题】:Can't start HSQLDB (java.net.BindException: Address already in use) 【发布时间】:2012-03-27 09:14:30 【问题描述】:~~~~~@debian:~/Workspace/SEPM1$ java -cp lib/hsqldb.jar org.hsqldb.server.Server -database.0 mydb -dbname.0 SEPM1
[Server@46f5c8fb]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@46f5c8fb]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@46f5c8fb]: Startup sequence initiated from main() method
[Server@46f5c8fb]: Loaded properties from [/home/~~~~~/Workspace/SEPM1/server.properties]
[Server@46f5c8fb]: Initiating startup sequence...
[Server@46f5c8fb]: [Thread[HSQLDB Server @46f5c8fb,5,main]]: run()/openServerSocket():
java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at java.net.ServerSocket.<init>(ServerSocket.java:128)
at org.hsqldb.server.HsqlSocketFactory.createServerSocket(Unknown Source)
at org.hsqldb.server.Server.openServerSocket(Unknown Source)
at org.hsqldb.server.Server.run(Unknown Source)
at org.hsqldb.server.Server.access$000(Unknown Source)
at org.hsqldb.server.Server$ServerThread.run(Unknown Source)
[Server@46f5c8fb]: Initiating shutdown sequence...
[Server@46f5c8fb]: Shutdown sequence completed in 5 ms.
[Server@46f5c8fb]: 2012-03-27 11:06:32.569 SHUTDOWN : System.exit() is called next
~~~~~@debian:~/Workspace/SEPM1$ netstat
我在 Eclipse 中从事大学项目。我们被要求使用 hsqldb,但在尝试启动它时,我收到一条错误消息,指出地址正在使用中。
我不确定如何解决这个问题。我用谷歌搜索了它,但我能找到的所有相关主题都是关于特定程序的,所以这是一条死胡同。有什么建议吗?
【问题讨论】:
以前的错误很明显,不是吗?您正在运行另一个使用相同端口的程序。甚至可能是您忘记正确关闭的 HSQLDB 实例。 @a_horse_with_no_name 很可能,因为我之前运行它没有问题。但我记得我确实正确地关闭了它。我似乎无法在进程中找到 hsqldb 来杀死它。已经杀死了所有的java,但是没有用 试试 'netstat -n' 看看,绑定了哪些端口。 @ckuetbach 找到它并阻止它。谢谢。 【参考方案1】:您可以通过添加--port nnnn
命令行参数为服务器使用不同的端口。客户端必须使用相同的端口,例如jdbc:hsqldb:hsql://localhost:1234/SEPM1
。
查看指南:http://hsqldb.org/doc/2.0/guide/listeners-chapt.html
【讨论】:
做到了,谢谢。不过问题好像是hsqldb关闭不正确造成的……以上是关于无法启动 HSQLDB(java.net.BindException:地址已在使用中)的主要内容,如果未能解决你的问题,请参考以下文章
无法启动 HSQLDB(java.net.BindException:地址已在使用中)
无法以新用户身份连接到 HyperSQL / HSQLDB 数据库