2011-10-25 4 views
2

Netbeans 7.1에서 실행할 때 완벽하게 작동하는 Java 응용 프로그램이 있지만 빌드 jar를 사용하면 충돌이 발생합니다.netbeans에서 애플리케이션을 실행하고 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 라이브러리를하지만 같은 결과가 있습니다.

나는 실행하고있어 윈도우 7 홈 프리미엄 SQL 서버 2008 (로컬 호스트) 자바 버전 1.6

스레드 덤프 넷빈즈 7.1 (넷빈즈에서 실행할 때 응용 프로그램이 잘 작동)

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) 

무엇 이걸 일으킬 수 있니?

+0

"충돌"을 정의하십시오. Stacktrace가 도움이 될 것입니다. –

+0

응용 프로그램이 getConnection을 호출 한 후 보유하기 때문에 스택 추적이 없습니다. 예외가 발생하지 않고 GUI가 응답하지 않습니다. – woozy

+0

@woozy 무슨 일이 일어나고 있는지 알기 위해 쓰레드 덤프를 할 수 있습니까? – r0ast3d

답변

0

jar 파일을 실행할 때 SQL Server 드라이버를 포함하도록 CLASSPATH를 설정하지 않는 것일 수도 있습니다. Netbeans에는 이미 포함되어 있기 때문일 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 올바른 클래스 경로가 있습니다. 또한 이것이 문제라면 예외가 던져 질 수도 있고 그렇지 않을 수도 있습니다. 응용 프로그램이 보유하고 있습니다. – woozy

1

무한정 매달려있는 DriverManager.getConnection 호출과 동일한 문제가있었습니다.

나를 위해 해결 된 문제는 Java 6 Update 25로 돌아가는 것이 었습니다. Update 29는 SQL Server에 대한 JDBC 연결과 관련된 버그를 발생시키는 것으로 보입니다. 나는 Update 27 (또는 이전 버전)이 여전히 잘 동작한다고 생각합니다.

관련 문제