html Java小程序将不会加载到网页上
我有一个可以工作的Java应用程序,可以在文件夹中找到最近创建的文件。我的最终目标是将该应用程序放在网页上,这样当用户打开网页时,该网页将导致文件夹中最近的文件打开。我读过一些oracle关于创建简单小程序的教程,但我遇到的每件事都涉及到制作我的页面不需要的GUI
目前,当我在firefox中打开html页面时,它会加载除小程序之外的所有html。它没有给出错误消息,只是什么都不做。我认为这是因为它没有将我的java应用程序识别为小程序,所以我认为我可能需要做更多的工作来将代码转换为小程序。我在java类名中添加了“extensedapplet”,并考虑添加一个init方法,但这似乎更适合那些需要GUI的人
下面是java应用程序,以防有帮助。就HTML而言,我将小程序嵌入为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>
# 1 楼答案
开发、调试和部署小程序(甚至到一台PC)既不方便也不容易。就拿我来说吧,我对applet有丰富的经验
对于一台机器,我会使用标准应用程序。使用
main()
,可能是从shell脚本启动的(例如OS X的.sh)。经理不是“点击链接”浏览到自动打开文件的页面,而是“运行(双击?)脚本“做同样的事情”。在Windows中,你甚至可以直接从HTML链接到一个.bat
文件,但我怀疑苹果会想打开这个安全漏洞也可以用
Desktop.open(File)
或Desktop.edit(File)
代替Runtime
# 2 楼答案
小程序是否仅在本地查看页面时运行,即仅为方便起见而使用HTML
因为否则,这里就有一个高层次的设计问题。当小程序在浏览器中运行时,它正在客户端运行。所以它无法列出服务器上的文件。小程序沙盒也会阻止您列出客户端文件。您当然不能在小程序中执行
Runtime.exec(...)
您需要研究服务器端技术。或者,如果你坚持使用小程序,你将需要以某种方式获取服务器端的所有文件,查看标题以确定每个资源是何时创建/上次修改的,然后选择适当的一个