Javaws应用程序不会在带有Java 7u55的Mac OS X 10.8上启动



我有一个非常简单的应用程序。以下是整个源代码:

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> 

谢谢!现在我可以调试真正的应用程序了。

最新更新