【问题标题】:How to get current working directory in GWT Java如何在 GWT Java 中获取当前工作目录
【发布时间】:2013-04-15 07:46:09
【问题描述】:

我正在使用 Java 1.6 和 GWT 2.4。

我很清楚我们可以使用以下代码获取 Java 中的当前工作目录:

System.getProperty("user.dir");

但是 GWT 不允许我在客户端使用 System 类。

所以我的问题是:有没有办法在 GWT 中获取当前工作目录路径?

【问题讨论】:

  • 我很想知道,你为什么需要这个?
  • 您能否提及您打算使用此数据实现的目标。我们可以据此提供建议。
  • @zzzz,感谢您的回复,但该问题是针对浏览器中的当前 URL。我要的是当前目录...
  • @ajduke 我的要求是,我需要在我的应用仪表板上显示一张图片。我在 Jboss 7.1 中部署应用程序。图像的路径类似于 \jboss-as-7.1.1.Final\standalone\data\files\1.png。那么在编码中我应该如何处理呢?

标签: java gwt working-directory


【解决方案1】:

您可以编写一个新服务(在您的RemoteService/RemoteServiceImpl 中),它基本上将使用System.getProperty("user.dir"); 获取当前工作目录?

这是一种解决方法,因为 GWT(客户端)代码没有 java.lang.System 类的 javascript 替换,或者我猜他们没有读取系统属性的权限(因为它们在浏览器上运行)

【讨论】:

    【解决方案2】:
    1. 您需要使用RPC 呼叫或RequestBuilder 呼叫。
    2. 将图片名称参数传递给服务器
    3. 在服务器端的服务类中计算系统路径并返回路径信息。

    GWT 编译为 javascript 并在通过 http 与服务器通信的浏览器中执行,因此无法执行像 System.getProperty("user.dir"); 这样的服务器端 java 代码。

    任何此类要求都应通过Asynchronous 调用服务器来实现。

    注意:向用户显示文件系统路径仍然没有意义,除非您使用 Web GUI 编写系统资源管理器(可能会引发一些与安全相关的查询!!!)

    【讨论】:

    • 感谢您的回复,但我没有向用户显示文件系统路径。你能说出你为什么这么认为吗?
    • 我想不出客户端有任何其他需要来显示文件系统路径。即使在浏览器中为用户下载图像,它也只需要来自 webapp 上下文的相对路径。我现在很好奇为什么你的要求:)
    • 知道了。您将图像文件托管在非 webapp 上下文中,即不在部署 GWT 的战争中。我说的对吗?
    【解决方案3】:
    Current Directory in GWT.
    

    你所有的java脚本都在客户端所以,current directory没有问题。

    System.getProperty("user.dir");
    

    出于安全原因javascript 无权访问系统驱动器以避免syber 攻击

    http://en.wikipedia.org/wiki/JavaScript#Security

    Opening a file in local file system in javascript

    为了获取文件,您需要进行服务器调用。

    【讨论】:

      【解决方案4】:

      System.getProperty("user.dir") 在 GWT 2.6.1 中为我工作得很好,无论是在本地运行还是部署到 Google App Engine 时(它返回的地方,例如 /base/data/home/apps/s~ rhezivt28/1.379778380561169345)。

      【讨论】:

        猜你喜欢
        • 2011-06-19
        • 2021-01-18
        • 2015-09-02
        相关资源
        最近更新 更多