Java JMF-没有从小程序写入文件的权限

Java JMF-没有从小程序写入文件的权限,java,java-web-start,jmf,Java,Java Web Start,Jmf,我正在使用jmf创建一个应用程序,该应用程序将使用JavaWebStart和jnlp文件在用户的计算机上启动。我想创建JFrame的jpg图像,然后使用这些图像制作quicktime电影。当我作为一个独立的应用程序运行时,所有这些都可以在用户的计算机上运行。 问题是,当它通过web start启动时,我收到一个错误,说我没有权限从小程序写入文件。我知道这是用jmf注册表工具设置的,但我不希望我的用户必须在他们的机器上安装jmf。 我从java bugs站点看到了一个解决方案。这是为了补充: co

我正在使用jmf创建一个应用程序,该应用程序将使用JavaWebStart和jnlp文件在用户的计算机上启动。我想创建JFrame的jpg图像,然后使用这些图像制作quicktime电影。当我作为一个独立的应用程序运行时,所有这些都可以在用户的计算机上运行。 问题是,当它通过web start启动时,我收到一个错误,说我没有权限从小程序写入文件。我知道这是用jmf注册表工具设置的,但我不希望我的用户必须在他们的机器上安装jmf。 我从java bugs站点看到了一个解决方案。这是为了补充:

com.sun.media.util.Registry.set(“secure.allowSaveFileFromApplets”,true)
System.setSecurityManager()

第二行实际上产生了一个错误,所以我把它去掉了。当我使用使用jmf的类的构造函数中的第一行运行代码时,没有发生任何事情。 我想知道是否有人对此有任何解决方案(允许jmf在不安装jmf的情况下从applet编写文件的方法)或建议让java bug站点的解决方案真正起作用。 谢谢 编辑-小程序和JAR都已签名 编辑-当我说第二行代码中有一个错误时,我的意思是类似于eclipse的语法错误,即括号不能为空。我没有想到要使用null的代码。不过,我现在已经尝试过了,添加这一行并没有什么不同。

我不完全清楚为什么我的程序被认为是一个小程序,但代码抛出的错误明确地说:“java.lang.RuntimeException:没有从小程序写入文件的权限。”所以我想我可以用java的名字来称呼我的程序。

我很确定我已经找到了如何让它工作的方法。 首先,您需要确保安装跨平台版本的jmf。然后需要使用命令行在JMF-2.1.1e\lib文件夹中使用以下命令运行JMFRegistry。
java-cp jmf.jar;mediaplayer.jar;multiplayer.jar JMFRegistry

现在您需要选中这些复选框以允许写入和捕获。您现在需要打开JMFCustomizer来创建自己的jar。您将在与上次相同的文件夹中运行以下命令。

java-cp customizer.jar;jmf.jar;mediaplayer.jar;multiplayer.jar JMFCustomizer

然后,您需要按照以下步骤创建自定义jar文件,确保使用此安装附带的jmf.jar文件。 就我个人而言,我只是包括了所有与录制视频有关的内容,但是你可以随意使用定制程序,只要你需要制作一个适合你的罐子。 此外,作为额外的预防措施,我在问题中提到的代码中添加了以下内容:

JMFSecurityManager.enableSecurityFeatures()

它们被放在调用jmf的类的构造函数中。


希望这能帮助其他有类似问题的人。

这还需要对小程序进行签名。1)为什么这篇文章在你似乎要启动一个框架时总是提到“小程序”?虽然小程序在JMF安装程序中默认为“不允许捕获”,但框架不应。(据我所知,虽然插件安全管理器的合并可能会改变这一点。)2)如果调用
System.setSecurityManager(null)
失败,则表示代码不受信任。