2017-11-12 15 views
0

내 프로젝트에서 JWebBrowser를 사용하려고합니다. 내 컴퓨터에서 모든 것이 잘 작동합니다. 그러나 다른 컴퓨터에서 경영 용 항아리를 사용하려고하면 두 번 클릭해도 아무런 변화가 없습니다. 아래 예제 코드는 내 컴퓨터에서 정상적으로 작동하지만 다른 컴퓨터에서는 작동하지 않습니다. 이 proble을 어떻게 해결할 수 있습니까?JWebBrowser가 다른 컴퓨터에서 작동하지 않습니다.

이클립스 콘솔에서 가져온 것처럼, 실행 파일 병에 대한 오류 메시지를 가져 오는 방법이 있습니까?

import java.awt.BorderLayout; 
import java.awt.FlowLayout; 
import java.awt.event.ItemEvent; 
import java.awt.event.ItemListener; 
import javax.swing.BorderFactory; 
import javax.swing.JCheckBox; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.SwingUtilities; 
import chrriis.common.UIUtils; 
import chrriis.dj.nativeswing.swtimpl.NativeInterface; 
import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser; 

/** 
* @author Christopher Deckers 
*/ 
public class Main extends JPanel { 

    public Main() { 
    super(new BorderLayout()); 
    JPanel webBrowserPanel = new JPanel(new BorderLayout()); 
    webBrowserPanel.setBorder(BorderFactory.createTitledBorder("Native Web Browser component")); 
    final JWebBrowser webBrowser = new JWebBrowser(); 
    webBrowser.navigate("http://www.google.com"); 
    webBrowserPanel.add(webBrowser, BorderLayout.CENTER); 
    add(webBrowserPanel, BorderLayout.CENTER); 

    JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 4, 4)); 
    JCheckBox menuBarCheckBox = new JCheckBox("Menu Bar", webBrowser.isMenuBarVisible()); 
    menuBarCheckBox.addItemListener(new ItemListener() { 
     public void itemStateChanged(ItemEvent e) { 
     webBrowser.setMenuBarVisible(e.getStateChange() == ItemEvent.SELECTED); 
     } 
    }); 
    buttonPanel.add(menuBarCheckBox); 
    add(buttonPanel, BorderLayout.SOUTH); 
    } 


    public static void main(String[] args) { 

    UIUtils.setPreferredLookAndFeel(); 
    NativeInterface.open(); 
    SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
     JFrame frame = new JFrame("DJ Native Swing Test"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.getContentPane().add(new Main(), BorderLayout.CENTER); 
     frame.setSize(800, 600); 
     frame.setLocationByPlatform(true); 
     frame.setVisible(true); 
     } 
    }); 
    NativeInterface.runEventPump(); 
    } 

} 
+0

다른 컴퓨터에서는 'java -jar myJar.jar'명령을 사용하여 콘솔에서 실행합니다. 그러면 콘솔에 stacktrace가 표시됩니다. – Bedla

+1

[런타임시 jar를 어떻게 디버깅 할 수 있습니까?] (https://stackoverflow.com/questions/19842322/how-can-i-debug-a-jar-at-runtime) – Bedla

+0

아래 오류가 발생했습니다. 내 컴퓨터는 64 비트입니다. 항아리를 32 비트와 64 비트 모두에서 작동시키는 방법이 있습니까? 스레드 "main"의 예외 NativeSwing [1] : 32 비트 JVM에서로드 64 비트 SWT 라이브러리 NativeSwing [ (알 수 없음 소스) NativeSwing [1] : org.eclipse.swt.internal.Library.loadLibrary에서 (알 수 없음 소스) NativeSwing [1] : at org.eclipse.swt.internal.C. (알 수없는 출처) ........................... –

답변

0

eclipse에서 기본 JRE 버전을 32 비트로 변경하십시오. 또는 "실행 구성 속성 편집"에서 VM 인수에 -d32를 추가하십시오.