2012-03-27 3 views
2
[email protected]:~/Workspace/SEPM1$ java -cp lib/hsqldb.jar org.hsqldb.server.Server -database.0 mydb -dbname.0 SEPM1 
[[email protected]]: [Thread[main,5,main]]: checkRunning(false) entered 
[[email protected]]: [Thread[main,5,main]]: checkRunning(false) exited 
[[email protected]]: Startup sequence initiated from main() method 
[[email protected]]: Loaded properties from [/home/~~~~~/Workspace/SEPM1/server.properties] 
[[email protected]]: Initiating startup sequence... 
[[email protected]]: [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) 
[[email protected]]: Initiating shutdown sequence... 
[[email protected]]: Shutdown sequence completed in 5 ms. 
[[email protected]]: 2012-03-27 11:06:32.569 SHUTDOWN : System.exit() is called next 
[email protected]:~/Workspace/SEPM1$ netstat 

Я работал в затмении по университетскому проекту. Мы должны были использовать hsqldb, и, пытаясь запустить его, я получаю сообщение об ошибке, указывающее, что адрес используется.Не удается запустить HSQLDB (java.net.BindException: Адрес уже используется)

Я не уверен, как это исправить. Я искал ее, но все связанные темы, которые я мог найти, касались конкретных программ, так что это был тупик. Предложения?

+5

Ошибка предыдущая очевидна, не так ли? У вас есть другая программа, использующая тот же порт. Возможно, даже экземпляр HSQLDB, который вы забыли закрыть. –

+0

@a_horse_with_no_name Скорее всего, поскольку я запускал его раньше, без проблем. Но я действительно закрыл его, как я помню. Я не могу найти hsqldb в процессах, чтобы убить его. Уже убил все java, но это не сработало – vedran

+1

Попробуйте «netstat -n» и посмотрите, какие порты связаны. –

ответ

4

Вы можете использовать другой порт для сервера, добавив аргумент commmand line --port nnnn. Тот же порт должен использоваться на клиенте, например jdbc:hsqldb:hsql://localhost:1234/SEPM1.

См. Руководство: http://hsqldb.org/doc/2.0/guide/listeners-chapt.html

+0

Это понравилось. Однако проблема, по-видимому, вызвана неправильным закрытием hsqldb ... – vedran