2013-04-15 60 views
1

我正在使用Java 1.6和GWT 2.4。如何在GWT中获取当前工作目录Java

我非常清楚地知道,我们可以使用下面的代码获得Java的当前工作目录:

System.getProperty("user.dir"); 

但GWT不会让我在客户端使用系统类。

所以我的问题是:有什么办法让GWT中的当前工作目录路径?

+0

我很想知道,为什么你需要这个? – ajduke

+0

你能提一下你打算用这些数据来实现吗?我们可以基于此提供建议。 – SSR

+0

@zzzz,感谢您的回复,但问题是针对浏览器中的当前网址。我在询问当前目录... – RAS

回答

0

你可以编写一个新的服务(在你的RemoteService/RemoteServiceImpl),这将基本上得到当前的工作目录使用System.getProperty("user.dir");

它是一种变通,导致GWT(客户端)代码没有JavaScript的替代java.lang.System类或我猜他们没有previlidge读取系统属性(因为他们在浏览器中运行)

0
  1. 您将需要使用RPC致电或RequestBuilder致电。
  2. 将参数映像名称传递给服务器
  3. 在服务器端的服务类中计算系统路径并返回路径信息。

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

任何这样的要求应通过Asynchronous调用服务器来实现。

注:它仍然没有任何意义,除非你用的Web GUI书写的系统资源管理器(可能会引起一些安全相关的查询!)

+1

感谢您的回复,但我没有向用户显示文件系统路径。你能告诉你为什么这么想吗? – RAS

+0

我无法想象客户端需要显示文件系统路径。即使在浏览器中为用户下载图像,它也只需要来自webapp上下文的相对路径。我很好奇,为什么在你的方面:) – SSR

+0

我已经在我的问题的评论中提到。 – RAS

0

System.getProperty(“user.dir”)在GWT 2.6.1中工作良好,无论是在本地运行还是部署到Google App Engine时(例如返回eg/base/data/home/apps/s) 〜rhezivt28/1.379778380561169345)。