Java Applet将无法在网页上加载

时间:2012-07-02 17:55:08

标签: java html applet load

我有一个可以在文件夹中找到最近创建的文件的Java应用程序。我的最终目标是在网页上安装该应用,因此当用户打开网页时,该页面将导致文件夹中的最新文件打开。我已经阅读了oracle创建简单applet的一些教程,但是我遇到的所有内容都涉及制作我的页面不需要的GUI。

目前,当我在firefox中打开html页面时,它会加载除applet之外的所有html。它没有给出错误消息,它只是没有做任何事情。我认为这是因为它没有将我的java应用程序识别为applet,所以我想我可能需要做更多工作才能将我的代码转换为applet。我将“extends Applet”添加到我的java类名中,我考虑添加一个init方法,但这似乎更适合那些想要GUI的人。

java应用程序在下面,以防可能有所帮助。就HTML而言,我将applet嵌入applet code =“FirstApplet”width ='300'height ='300'(带有正确的开始和结束标签),它与java app位于同一个文件夹中。

import java.applet.Applet;
import java.io.File;
import java.io.IOException;

@SuppressWarnings("serial")
public class FirstApplet extends Applet{
    public static File[] getPath(String folderPath){

        File directory = new File(folderPath);
        File[] myarray;
        myarray=directory.listFiles();
        return myarray;
    }
    public static String getMostCurr(File[] fileArray){
        File mostCurrent = null;
        for (int i = 0; i < fileArray.length; i++) {
            if ((mostCurrent==null)||
            (fileArray[i].lastModified()> mostCurrent.lastModified())) 
        {
            mostCurrent = fileArray[i]; 
        }                   }

        //System.out.println(mostCurrent.toString());       
        return mostCurrent.toString();
    }

    public static void main(String[] args) throws IOException{
        //opens file on MACINTOSH
        Runtime.getRuntime().exec(new String[]{"/usr/bin/open", 
                getMostCurr(getPath("/Users/guest/Desktop/lectures/testFileReader"))});
    }
}   

编辑**:这是请求的HTML页面。

<html>
<head>
<title>My First Java Applet </title>
</head>
<body>
Here's my first java applet:  <br> <br>
<applet code ='FirstApplet.class' width='300' height='300'>
</body>
</html>

2 个答案:

答案 0 :(得分:2)

您的applet是否仅在本地查看页面时运行 - 即为方便起见它是HTML?

因为否则,您在此处遇到了高级设计问题。当applet在浏览器中运行时,它正在运行客户端。因此它无法列出服务器上的文件。 Applet沙箱也会阻止您列出客户端文件。您当然无法在小程序中执行Runtime.exec(...)

您需要研究服务器端技术。或者如果你坚持使用Applet,你需要以某种方式获取服务器端的所有文件,查看标题以找出每个资源的创建/最后修改时间,然后选择合适的...

答案 1 :(得分:0)

  

只是为了方便而使用HTML。

开发,调试和部署applet(甚至是一台PC)并不方便或容易。从我这一点来看,我对applet有丰富的经验。

  

它只能在我的经理的计算机上运行,​​该计算机上有所有必要的文件。

对于一台机器,我会使用标准应用程序。使用main(),可能是从shell脚本启动的(例如OS X的.sh)。而不是经理“点击链接”浏览到自动打开文件的页面,而是“运行(双击?)脚本”,它执行相同的操作。在Windows中,您甚至可能直接从HTML链接到.bat文件,但我怀疑Apple会想要打开这个安全漏洞。

另请使用Desktop.open(File)Desktop.edit(File)代替Runtime