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

时间:2014-04-25 13:59:48

标签: java macos

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

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 run\n");
            out.close();
            fstream.close();
        }catch (Exception e){}
    }
}

它将在Mac OS X以外的操作系统上运行。如果我强制使用Java 6,它将在Mac OS X上运行。这可以通过命令行完成:

/System/Library/Java/Support/Deploy.bundle/Contents/MacOS/javaws -XstartOnFirstThread http://forexhitandrun.com/app_dev/apptest.jnlp

在这种情况下,它会将一行写入日志文件,因此我知道它已运行。

但是,如果我从浏览器中将其作为webstart应用程序运行,如下所示:

http://forexhitandrun.com/app_dev/apptest.jnlp

没有任何内容写入日志文件。此方法使用Oracle最新的Java 7更新。

但是在我们得出结论认为我的Java安装有问题之前,我可以从浏览器(因此是Java 7)启动一个不同的应用程序,它确实有效:

http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/JavaTest/

有没有人经历过类似的事情,或者有没有人有任何可能出错的线索?

1 个答案:

答案 0 :(得分:0)

Petesh的评论让我想到了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> 

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