1

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

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

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

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>
4

2 回答 2

2

您的小程序是否仅在本地查看页面时运行——即,它是 HTML 只是为了方便?

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

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

于 2012-07-02T18:04:24.680 回答
0

它是 HTML 只是为了方便。

开发、调试和部署小程序(甚至在一台 PC 上)并不方便或容易。从我这里拿走吧,我在小程序方面有丰富的经验。

它只会在拥有所有必要文件的经理的计算机上运行。

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

还希望使用Desktop.open(File)orDesktop.edit(File)代替Runtime.

于 2012-07-02T18:58:39.860 回答