Hall zusammen,
ich habe ein Package bzw. eine JAR Datei eingebunden, das xhtml und normale html Seiten mit CSS Perfekt anzeigt.
Das Problem ist einfach das, dass Beispiel Programm nicht Funktioniert.
Hier der Fehler
Hier das Programm
Ich hoffe ihr könnt mir helfen da ich noch nie mit einem externen JAR Datei gearbeitet habe.
Eingebunden habe ich es ganz normal mit Rechtklick auf Libariers und Add Libarary...
IDE: NetBeans 5.5
Gruß
ich habe ein Package bzw. eine JAR Datei eingebunden, das xhtml und normale html Seiten mit CSS Perfekt anzeigt.
Das Problem ist einfach das, dass Beispiel Programm nicht Funktioniert.
Hier der Fehler
Code:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jdic in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at org.jdesktop.jdic.browser.internal.WebBrowserUtil$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at org.jdesktop.jdic.browser.internal.WebBrowserUtil.loadLibrary(Unknown Source)
at org.jdesktop.jdic.browser.internal.WebBrowserUtil.getDefaultBrowserPath(Unknown Source)
at org.jdesktop.jdic.browser.BrowserEngineManager.selectEngine(Unknown Source)
at org.jdesktop.jdic.browser.BrowserEngineManager.getActiveEngine(Unknown Source)
at muster.Browser.jbInit(Browser.java:177)
at muster.Browser.<init>(Browser.java:73)
at muster.Browser.main(Browser.java:89)
Hier das Programm
Code:
/*
* NewClass.java
*
* Created on 26. März 2007, 12:39
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package muster;
/*
* Copyright (C) 2004 Sun Microsystems, Inc. All rights reserved. Use is
* subject to license terms.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the Lesser GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA.
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.SwingConstants;
import java.io.File;
import java.net.URL;
import java.net.MalformedURLException;
import org.jdesktop.jdic.browser.*;
/**
* JDIC API demo main class.
*
* <code>Browser</code> is a GUI application demonstrating the usage of the JDIC API package
* <code>org.jdesktop.jdic.browser</code> (Browser component).
*/
public class Browser extends JPanel {
BorderLayout borderLayout1 = new BorderLayout();
JToolBar jBrowserToolBar = new JToolBar();
JButton jStopButton = new JButton("Stopp");
JButton jRefreshButton = new JButton("Refresh");
JButton jForwardButton = new JButton("Forward");
JButton jBackButton = new JButton("Back");
JPanel jAddressPanel = new JPanel();
JLabel jAddressLabel = new JLabel();
JTextField jAddressTextField = new JTextField();
JButton jGoButton = new JButton();
JPanel jAddrToolBarPanel = new JPanel();
MyStatusBar statusBar = new MyStatusBar();
JPanel jBrowserPanel = new JPanel();
IWebBrowser webBrowser;
public Browser() {
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {}
JFrame frame = new JFrame("JDIC API Demo - Browser");
Container contentPane = frame.getContentPane();
contentPane.setLayout(new GridLayout(1, 1));
contentPane.add(new Browser());
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.pack();
frame.setVisible(true);
}
private void jbInit() throws Exception {
this.setLayout(borderLayout1);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
this.setPreferredSize(new Dimension(screenSize.width * 9 / 10,
screenSize.height * 8 / 10));
ToolTipManager.sharedInstance().setLightWeightPopupEnabled(false);
jAddressLabel.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 4));
jAddressLabel.setToolTipText("");
jAddressLabel.setText(" URL: ");
jGoButton.setBorder(BorderFactory.createCompoundBorder(new EmptyBorder(0,
2, 0, 2),
new EtchedBorder()));
jGoButton.setMaximumSize(new Dimension(60, 25));
jGoButton.setMinimumSize(new Dimension(60, 25));
jGoButton.setPreferredSize(new Dimension(60, 25));
jGoButton.setToolTipText("Load the given URL");
jGoButton.setText("GO");
jGoButton.addActionListener(new MyBrowser(this));
jAddressPanel.setLayout(new BorderLayout());
jAddressTextField.addActionListener(new Browser_jAddressTextField_actionAdapter(this));
jBackButton.setToolTipText("Go back one page");
jBackButton.setHorizontalTextPosition(SwingConstants.TRAILING);
jBackButton.setEnabled(false);
jBackButton.setMaximumSize(new Dimension(75, 27));
jBackButton.setPreferredSize(new Dimension(75, 27));
jBackButton.addActionListener(new Browser_jBackButton_actionAdapter(this));
jForwardButton.setToolTipText("Go forward one page");
jForwardButton.setEnabled(false);
jForwardButton.addActionListener(new Browser_jForwardButton_actionAdapter(this));
jRefreshButton.setToolTipText("Reload current page");
jRefreshButton.setEnabled(true);
jRefreshButton.setMaximumSize(new Dimension(75, 27));
jRefreshButton.setMinimumSize(new Dimension(75, 27));
jRefreshButton.setPreferredSize(new Dimension(75, 27));
jRefreshButton.addActionListener(new Browser_jRefreshButton_actionAdapter(this));
jStopButton.setToolTipText("Stop loading this page");
jStopButton.setVerifyInputWhenFocusTarget(true);
jStopButton.setText("Stop");
jStopButton.setEnabled(true);
jStopButton.setMaximumSize(new Dimension(75, 27));
jStopButton.setMinimumSize(new Dimension(75, 27));
jStopButton.setPreferredSize(new Dimension(75, 27));
jStopButton.addActionListener(new Browser_jStopButton_actionAdapter(this));
jAddressPanel.add(jAddressLabel, BorderLayout.WEST);
jAddressPanel.add(jAddressTextField, BorderLayout.CENTER);
jAddressPanel.add(jGoButton, BorderLayout.EAST);
jAddressPanel.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createEtchedBorder(),
BorderFactory.createEmptyBorder(2, 0, 2, 0)));
jBrowserToolBar.setFloatable(false);
jBrowserToolBar.add(jBackButton, null);
jBrowserToolBar.add(jForwardButton, null);
jBrowserToolBar.addSeparator();
jBrowserToolBar.add(jRefreshButton, null);
jBrowserToolBar.add(jStopButton, null);
jBrowserToolBar.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createEtchedBorder(),
BorderFactory.createEmptyBorder(2, 2, 2, 0)));
jAddrToolBarPanel.setLayout(new BorderLayout());
jAddrToolBarPanel.add(jAddressPanel, BorderLayout.CENTER);
jAddrToolBarPanel.add(jBrowserToolBar, BorderLayout.WEST);
jAddrToolBarPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 2, 0));
statusBar.setBorder(BorderFactory.createEmptyBorder(2, 0, 0, 0));
statusBar.lblDesc.setText("JDIC API Demo - Browser");
try {
BrowserEngineManager bem = BrowserEngineManager.instance();
webBrowser = bem.getActiveEngine().getWebBrowser();
webBrowser.setURL(new URL("http://java.net"));
// Print out debug messages in the command line.
//webBrowser.setDebug(true);
} catch (MalformedURLException e) {
System.out.println(e.getMessage());
return;
}
webBrowser.addWebBrowserListener(new WebBrowserListener() {
public void downloadStarted(WebBrowserEvent event) {
updateStatusInfo("Loading started.");
}
public void initializationCompleted(WebBrowserEvent event){;}
public void downloadCompleted(WebBrowserEvent event) {
jBackButton.setEnabled(webBrowser.isBackEnabled());
jForwardButton.setEnabled(webBrowser.isForwardEnabled());
updateStatusInfo("Loading completed.");
URL currentUrl = webBrowser.getURL();
if (currentUrl != null) {
jAddressTextField.setText(currentUrl.toString());
}
}
public void downloadProgress(WebBrowserEvent event) {
// updateStatusInfo("Loading in progress...");
}
public void downloadError(WebBrowserEvent event) {
updateStatusInfo("Loading error.");
}
public void documentCompleted(WebBrowserEvent event) {
updateStatusInfo("Document loading completed.");
}
public void titleChange(WebBrowserEvent event) {
updateStatusInfo("Title of the browser window changed.");
}
public void statusTextChange(WebBrowserEvent event) {
// updateStatusInfo("Status text changed.");
}
public void windowClose(WebBrowserEvent event) {;}
});
jBrowserPanel.setLayout(new BorderLayout());
jBrowserPanel.add(webBrowser.asComponent(), BorderLayout.CENTER);
this.add(jAddrToolBarPanel, BorderLayout.NORTH);
this.add(statusBar, BorderLayout.SOUTH);
this.add(jBrowserPanel, BorderLayout.CENTER);
}
void updateStatusInfo(String statusMessage) {
statusBar.lblStatus.setText(statusMessage);
}
/**
* Check the current input URL string in the address text field, load it,
* and update the status info and toolbar info.
*/
void loadURL() {
String inputValue = jAddressTextField.getText();
if (inputValue == null) {
JOptionPane.showMessageDialog(this, "The given URL is NULL:",
"Warning", JOptionPane.WARNING_MESSAGE);
} else {
// Check if the text value is a URL string.
URL curUrl = null;
try {
// Check if the input string is a local path by checking if it starts
// with a driver name(on Windows) or root path(on Unix).
File[] roots = File.listRoots();
for (int i = 0; i < roots.length; i++) {
if (inputValue.toLowerCase().startsWith(roots[i].toString().toLowerCase())) {
File curLocalFile = new File(inputValue);
curUrl = curLocalFile.toURL();
break;
}
}
if (curUrl == null) {
// Check if the text value is a valid URL.
try {
curUrl = new URL(inputValue);
} catch (MalformedURLException e) {
if (inputValue.toLowerCase().startsWith("ftp.")) {
curUrl = new URL("ftp://" + inputValue);
} else if (inputValue.toLowerCase().startsWith("gopher.")) {
curUrl = new URL("gopher://" + inputValue);
} else {
curUrl = new URL("http://" + inputValue);
}
}
}
webBrowser.setURL(curUrl);
// Update the address text field, statusbar, and toolbar info.
updateStatusInfo("Loading " + curUrl.toString() + " ......");
} catch (MalformedURLException mue) {
JOptionPane.showMessageDialog(this,
"The given URL is not valid:" + inputValue, "Warning",
JOptionPane.WARNING_MESSAGE);
}
}
}
void jGoButton_actionPerformed(ActionEvent e) {
loadURL();
}
void jAddressTextField_actionPerformed(ActionEvent e) {
loadURL();
}
void jBackButton_actionPerformed(ActionEvent e) {
webBrowser.back();
}
void jForwardButton_actionPerformed(ActionEvent e) {
webBrowser.forward();
}
void jRefreshButton_actionPerformed(ActionEvent e) {
webBrowser.refresh();
}
void jStopButton_actionPerformed(ActionEvent e) {
webBrowser.stop();
}
}
class Browser_jAddressTextField_actionAdapter implements java.awt.event.ActionListener {
Browser adaptee;
Browser_jAddressTextField_actionAdapter(Browser adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jAddressTextField_actionPerformed(e);
}
}
class Browser_jBackButton_actionAdapter implements java.awt.event.ActionListener {
Browser adaptee;
Browser_jBackButton_actionAdapter(Browser adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jBackButton_actionPerformed(e);
}
}
class Browser_jForwardButton_actionAdapter implements java.awt.event.ActionListener {
Browser adaptee;
Browser_jForwardButton_actionAdapter(Browser adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jForwardButton_actionPerformed(e);
}
}
class Browser_jRefreshButton_actionAdapter implements java.awt.event.ActionListener {
Browser adaptee;
Browser_jRefreshButton_actionAdapter(Browser adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jRefreshButton_actionPerformed(e);
}
}
class Browser_jStopButton_actionAdapter implements java.awt.event.ActionListener {
Browser adaptee;
Browser_jStopButton_actionAdapter(Browser adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jStopButton_actionPerformed(e);
}
}
class MyBrowser implements java.awt.event.ActionListener {
Browser adaptee;
MyBrowser(Browser adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jGoButton_actionPerformed(e);
}
}
Ich hoffe ihr könnt mir helfen da ich noch nie mit einem externen JAR Datei gearbeitet habe.
Eingebunden habe ich es ganz normal mit Rechtklick auf Libariers und Add Libarary...
IDE: NetBeans 5.5
Gruß