1

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

-Didea.launcher.bin.path=IDEA_BIN_DIR

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

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

4

1 回答 1

2

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

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

  • 如果这些文件很少改动(即原则上只有开发者自己修改),可以将它们放到applet的class文件中(即jar文件中,或者开发过程中生成类的目录中),使用class.getResource()or.getResourceAsStream()来加载他们。

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

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

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

抱歉,这些都不能回答你原来的问题(我不使用 IDEA),但也许这些可以帮助你找到另一种方法。

于 2011-08-17T00:48:36.683 回答