我有一个非常简单的应用程序。以下是整个源代码:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
public class AppTest {
public static void main(String[] args) {
Date myDate = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String myDateString = sdf.format(myDate);
FileWriter fstream = null;
BufferedWriter out = null;
try{
fstream = new FileWriter("AppTest.log",true);
out = new BufferedWriter(fstream);
out.append(myDateString + " AppTest has runn");
out.close();
fstream.close();
}catch (Exception e){}
}
}
它将在Mac OS X以外的操作系统上运行。如果我强制使用Java 6,它将在MacOS X上运行。这可以通过命令行完成:
/System/Library/Java/Support/Deploy.bundle/Contents/MacOS/javaws -XstartOnFirstThread http://forexhitandrun.com/app_dev/apptest.jnlp
在这种情况下,它向日志文件写入一行,这样我就知道它已经运行了。
但如果我像这样从浏览器将其作为网络启动应用程序运行:
http://forexhitandrun.com/app_dev/apptest.jnlp
日志文件中不会写入任何内容。此方法使用Oracle对Java 7的最新更新。
但是,在我们得出结论认为是我的Java安装有问题之前,我可以从浏览器中启动一个不同的应用程序(因此是Java 7),它确实有效:
http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/JavaTest/
有人经历过类似的事情吗?或者有人知道可能出了什么问题吗?
Petersh的话让我想到了jnlp文件,因为所有权限都是在安全标签下定义的。我不确定java不喜欢的jnlp文件中有什么,但我只是从已经工作的应用程序中复制了一些资源信息,现在就可以工作了。
下面是我的jnlp文件的资源部分:
<resources>
<j2se version="1.6+" spec="1.0+" initial-heap-size="64m" max-heap-size="128m" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="apptest.jar"/>
</resources>
谢谢!现在我可以调试真正的应用程序了。