如何在IDEA中设置Java applet的工作目录?

时间:2011-08-16 22:08:53

标签: java applet intellij-idea japplet

我一直在使用IntelliJ一段时间,我很享受它的功能套件,但我很难让运行配置适用于java applet。我有一个使用Swing的预先存在的Java工具,我使用JApplet类将这些GUI对象作为applet加载。问题是我有一些我需要加载的配置文件。我从工作目录加载这些,据我所知,这个工作目录通常是applet所在的目录。我认为主要问题是IDEA设置启动变量:

-Didea.launcher.bin.path=IDEA_BIN_DIR

我希望能够改变这一点,但我似乎无法改变。我已经尝试通过编辑applet运行配置VM参数来覆盖此标志,但即使我指定了不同的内容,IDEA也会继续将上述标记放入其中。

简而言之,我很难加载本地配置文件,因为我无法在IDEA中为运行配置设置工作目录。有没有人知道如何解决这个问题,或者知道在IDEA中运行使用配置文件的Java小程序的更好方法?

1 个答案:

答案 0 :(得分:2)

applet通常在浏览器的沙箱中运行,出于安​​全原因,这样的applet无法访问本地计算机的文件系统。

因此,从文件系统加载配置文件通常是个坏主意,而“工作目录”对于applet来说不是一个有用的术语。

  • 如果这些文件很少更改(即原则上只由开发人员更改),您可以将它们放到applet的类文件中(即在jar文件中,或者在生成类的目录中进行开发) ,并使用class.getResource().getResourceAsStream()加载它们。

  • 如果配置文件应由网站管理员定义,请将它们放在网络服务器上 - 位于相对于getCodeBase().getDocumentBase()的某个固定位置,或将其指定为小程序的参数HTML标记中的标记。

  • 如果这些是用户特定的配置文件(applet应该能够写入),您需要将它们存储在服务器上并在登录后检索/存储(即您需要在服务器端使用某些逻辑) ),或者你将它们存储在客户端。

    当前的方法是使用JNLP API(在javax.jnlp。*中) - 有一些接口允许持久性,或加载/存储数据(用户拥有FileChooser)。或者,您可以签署您的applet并向用户请求AllPermission - 然后您就可以访问文件系统。

对不起,这些问题没有解答你原来的问题(我不使用IDEA),但也许这些可以帮助你找到另一种方式。