#java #sql-server #sql-server-2008 #netbeans #netbeans-7
#java #sql-сервер #sql-server-2008 #netbeans #netbeans-7
Вопрос:
У меня есть java-приложение, которое отлично работает при запуске из Netbeans 7.1, но оно вылетает, если я использую build jar.
Я изучал проблему и заметил, что приложение удерживается при вызове DriverManager.getConnection() .
Я делаю что-то вроде:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:2304;user=username;password=12345;database=databasename");
Я также пробовал jtds, но результат тот же.
Я использую Windows 7 Home Premium SQL Server 2008 (localhost) Netbeans 7.1 (приложение отлично работает при запуске из Netbeans) Java версии 1.6
Дамп потока
java.lang.Exception: Stack trace
at java.lang.Thread.dumpStack(Unknown Source)
at joomlasyncrnzr.JoomlaSyncrnzrApp.getCon(JoomlaSyncrnzrApp.java:314)
at joomlasyncrnzr.JoomlaSyncrnzrApp.taxas(JoomlaSyncrnzrApp.java:604)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(Ap
licationAction.java:662)
at org.jdesktop.application.ApplicationAction.actionPerformed(ApplicatinAction.java:698)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Что может быть причиной этого?
Комментарии:
1. Определите «сбои». Трассировка стека могла бы помочь.
2. У меня нет трассировки стека, поскольку приложение просто сохраняется после вызова getConnection. Исключение не выдается, и графический интерфейс перестает отвечать.
3. @woozy можете ли вы сделать дамп потока, чтобы посмотреть, что происходит?
4. @r0ast3d нет. Я пробовал control break, но мне не удалось получить дамп потока…
5. можете ли вы отредактировать свое исходное сообщение, чтобы добавить более подробную информацию об окружающей среде и другие детали для устранения этой проблемы.
Ответ №1:
У меня была такая же проблема с вызовом DriverManager.getConnection, который просто зависал на неопределенный срок.
Что решило проблему для меня, так это возвращение к обновлению Java 6 25. Обновление 29, похоже, вводит ошибку с подключением JDBC к SQL Server. Я думаю, что обновление 27 (или более раннее) все еще работает нормально.
Ответ №2:
Возможно, вы не настраиваете свой CLASSPATH для включения драйвера SQL Server при запуске файла jar, тогда как Netbeans, вероятно, уже включил его для вас.
Комментарии:
1. Спасибо за ваш ответ. У меня правильный путь к классу. Кроме того, если бы это было проблемой, возникло бы исключение, но это не так. Приложение просто сохраняется.