java - 尝试用小程序打开记事本

标签 java javascript html applet notepad

我正在尝试使用小程序从浏览器打开记事本。是的,我知道这对安全性来说很糟糕,但这是一个概念证明。我本来想在APEX中使用javascript来做到这一点,但没有成功。无论如何,这是我的小程序:

package opennote;
import java.applet.*;
import java.net.*;


public final class OpenNote extends Applet{

public static void init(String[] args){
    try{
        ProcessBuilder derp = new ProcessBuilder("Notepad.exe","myfile.txt");
        derp.start();
    }
    catch(Exception e){
        System.out.println("Stuff didn't work);
    }
}
}

我的 HTML 是

<html>
<title>This applet opens the notepad</title>
<hr>
<applet code=OpenNote.class width="320" height="120">
If my browser is Java-enabled, I will open the notepad.
</applet>
<hr>
<html>

当我将小程序制作为应用程序时,它起作用了,但这并不能说明什么。当我打开 HTML 时,它会在我允许安全性运行 java 小程序之前显示“如果我的浏览器...”消息。然后 javascript 加载,消息消失,并给我一个应用程序错误。错误是“NoClassDefFoundError”,唯一的信息是“OpenNote(错误名称:opennote/OpenNote) 类文件保存在与 HTML 相同的目录中。

有人能看出我做错了什么吗?当然,安全风险除外。

编辑: 我已经放弃了记事本概念验证。看来是挂了。这是我的新问题。我只有一个应用程序。它写入一个输出。它得到一个错误。

package ex;
import java.applet.*;
import java.net.*;


public final class EX extends Applet{

public static void main(String[] args){
    System.out.println("Here be monsters");
}
}

我的 HTML 是

<html>
<title>This applet writes stuff</title>
<hr>
<applet code="Ex.class" width="320" height="120">
If my browser is Java-enabled, I will write stuff
</applet>
<hr>
<html>

当我把它放进去时,我得到了错误

NoClassDefFoundError

Ex(错误名称:ex/Ex)

当我将 javascript 中的“code”属性更改为“ex.Ex.class”时,我收到以下代码:

类未发现异常

ex.Ex.class

这是怎么回事?

最佳答案

您需要在 html 中正确指定您的类。 喜欢

<applet code="opennote.OpenNote.class" width="320" height="120">

或者

<applet code="opennote\OpenNote.class" width="320" height="120">

这是因为您的代码位于 opennote 包中。

关于java - 尝试用小程序打开记事本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24458504/

相关文章:

java - 使用 AngularJS 和 Spring 的路径变量

javascript - ES6类语法不是给我们提供了 "classical"继承吗?

javascript - 用鼠标不断调整元素大小的最佳方法是什么?

java - 警告 : API 'variant.getMergeResources()' is obsolete and has been replaced with

java - 扩展类的问题

javascript - 没有选中属性的复选框

javascript - Knockout afterRender 仅触发一次

html - 仅缩放背景图像

html - 调整大小时使 3 列变为 Accordion

java - 创建具有多个类的对象