gpt4 book ai didi

java - 无法部署由 NetBeans 构建的任何小程序

转载 作者:行者123 更新时间:2023-11-30 04:27:12 25 4
gpt4 key购买 nike

我是 Java 新手。我无法在 html 页面上部署任何小程序,并且不断收到 InvocableTargetException。为了说明这一点,这里有一个例子:

我的小程序只有一个具有 main 的类。所有代码均由 NetBeans 生成,GUI 仅包含一个按钮:

package javaapplication;

public class NewJFrame extends javax.swing.JFrame {
public NewJFrame() {
initComponents();
}

@SuppressWarnings("unchecked")


// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jButton1 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jButton1.setText("jButton1");

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButton1)
.addContainerGap(317, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButton1)
.addContainerGap(266, Short.MAX_VALUE))
);

pack();
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>

/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
// End of variables declaration
}

它可以在 NetBeans 中顺利编译和运行。现在我清理并构建 .jar 文件。这是 MANIFEST.MF,对我来说看起来不错:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.4
Created-By: 1.7.0_10-b18 (Oracle Corporation)
Class-Path:
X-COMMENT: Main-Class will be added automatically by build
Main-Class: javaapplication.NewJFrame

这是我的index.html:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<applet archive="JavaApplication.jar" width="300" height="300" code="javaapplication.NewJFrame"/>

</body>

</html>

我已将它们放在同一目录中并正确设置权限。现在,当我尝试打开放置在服务器上的 index.html 时,它会在最新版本的 Firefox 和 Chrome 上给出 InvocableTargetException。

我尝试了很多不同的事情,例如创建另一个具有 main 的类,或使用 Jnlp 但无济于事。非常感谢任何帮助。

最佳答案

我在您的代码中看不到小程序。

package javaapplication;

public class NewJFrame extends javax.swing.JFrame {
public NewJFrame() {
initComponents();
}
[...]

从头开始创建 Java 项目。 (Netbeans)

  • 选择"file">“新建项目”(Ctrl-Shift-N) (MyTestApplet)。
  • 在“类别”下,选择“Java”。
  • 在“项目”下选择“Java 类库”。
  • 单击“完成”。

  • 创建小程序源文件

  • 右键单击“项目”窗口中的 MyTestApplet 项目节点,然后选择“新建”>“其他”(Ctrl-N)。
  • 在“类别”下,选择“Java”。
  • 选择 Swing GUI 表单 > JApplet 表单。
  • 点击“下一步”。
  • 在“类名称”下,输入 NewJApplet
  • 在“包”下,输入 javaapplication
  • 点击“完成”。

IDE 在指定的包中创建小程序源文件。小程序源文件将打开,GUI 编辑器将打开。

  • 将按钮拖至 GUI。

源 NewJapplet.java 应该类似于:

package javaapplication;

public class NewJApplet extends javax.swing.JApplet {


@Override
public void init() {

try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(NewJApplet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(NewJApplet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(NewJApplet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(NewJApplet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}

try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}


@SuppressWarnings("unchecked")

private void initComponents() {

jButton1 = new javax.swing.JButton();

jButton1.setText("jButton1");

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(182, Short.MAX_VALUE)
.addComponent(jButton1)
.addGap(139, 139, 139))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(43, 43, 43)
.addComponent(jButton1)
.addContainerGap(232, Short.MAX_VALUE))
);
}
private javax.swing.JButton jButton1;

}
  • 运行构建

现在 dist 文件夹中是 MyTestApplet.jar

  • 将 .jar 复制到服务器的文件夹 MyTestApplet
  • 将以下 .html 复制到服务器的同一文件夹 MyTestApplet

使用此 html 文件。

  • 更改 classid="clsid:CAFEEFAC-0016-0000-0000-ABCDEFFEDCBA"width="300"height="300">指向您的 Java 版本
  • 0017

AppletPage.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en-US">
<head>
<title>Applet Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<body>
<h1>Applet Demo</h1>
<h2>This applet has been deployed with the object tag</h2>
<object
classid="clsid:CAFEEFAC-0016-0000-0000-ABCDEFFEDCBA" width="300" height="300">
<PARAM name="code" value="javaapplication.NewJApplet">
<PARAM name="archive" value="MyTestApplet.jar">
<comment>
<embed code="javaapplication.NewJApplet.class"
width="300"
height="300"
archive="MyTestApplet.jar"
type="application/x-java-applet">
<noembed>
No Java Support.
</noembed>
</embed>
</comment>
</object>

</body>
</html>
  • 在浏览器中输入网址:http://localhost/MyTestApplet/AppletPage.html

瞧:

enter image description here

希望这有帮助。

关于java - 无法部署由 NetBeans 构建的任何小程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15591658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com