2012-03-02 56 views
4

我刚刚将应用程序从WindowsXp移到Windows7。我通过Eclipse运行配置管理器设置运行多个应用程序。Windows 7和Eclipse,如何运行主要应用程序打到桑巴安装

大多数应用程序使用UNC路径访问samba安装/网络驱动器。通过这种方法,路径显示为“目录不存在”。如果我从Windows资源管理器中运行应用程序,应用程序运行良好。

我相信这与Windows7新的安全模型有关。我只是好奇,是否有办法像我对WindowsXP那样运行我的应用程序。

下面是一个例子方法:

new File("\\\\myserver\\myFile.txt").exists();` 

如果我从Eclipse中通过主应用程序运行的代码,它会返回“真”的windowsXP的和虚假的在Windows 7

我需要它为Windows 7存在。

在ECLIPSE的内部,这是行不通的。但是在eclipse之外运行,通过Windows资源管理器说,它工作正常。另外,Eclipse以管理员身份运行。

+2

我认为它应该是'new File(“\\\\ myserver”)。exists();路径中的反斜杠需要双反斜杠。 – 2012-03-02 03:07:27

+0

我建议您创建一个Windows网络驱动器,您可以在链接中提供用户:密码,如下所示:http:// stackoverflow。com/questions/208839 /如何安装一个Windows驱动器-java – 2012-03-02 03:19:42

+0

ee,这是一种伪代码。我忽略了确切的UNC路径。这与更多与Windows7相关的网络和安全有关。我试图避免改变实际的代码,但看看是否有一个Windows7的设置或我可以传递给Eclipse的标志,这将允许我访问这些路径。 – 2012-03-02 03:32:34

回答

1

是的,你是对的。在执行new File("\\myserver").exists();时,它返回false。这些是我在我的Windows 7机器上尝试过这些时所注意到的要点。

  1. 像其他人说,你应该使用\\\\(双斜线)来表示反斜杠Java中
  2. new File("\\\\myserver").exists();也返回false。这是因为您尝试使用文件IO访问网络驱动器。
  3. 假设在myserver上有一个文件或目录,说myFile.txt或另一个目录myDirectory。然后,如果您访问任何文件/目录,则返回true

    new File("\\\\myserver\\myFile.txt").exists();
    new File("\\\\myserver\\myDirectory").exists();
    以上线路返回true

UPDATE:\\myserver只能像GUI应用程序的互动节目访问,但不programmaticaly。尽管JCIFS是访问网络驱动器的另一种选择。

+0

它在ECLIPSE之外正常工作。我可以运行应用程序没有错误。当我在Eclipse中作为主应用程序运行应用程序时(例如通过运行配置)应用程序不运行,那些目录不存在。问题在于Eclipse。我可能需要使用安装的驱动器,但我没有使用新的FS连接。 – 2012-03-13 20:47:15

+0

xp上的预期效果如何? – Rakesh 2012-03-14 06:11:27

+0

XP没有这个问题。只有Win7 – 2012-03-14 14:41:06

1

首先,您需要将另一个反斜杠转义,因为反斜杠是字符串中特殊的使用字符。 所以你会做一个新的URI(“\\ smbServer”)来对应在Windows地址栏中键入的\ smbServer。

其次,所有的桑巴基座挂载点不是一个文件夹,这就是为什么你不能用io打开它。您需要将它作为Samba挂载点安装到特殊类中,或让Windows驱动程序通过尝试访问其中的文件夹来解决它。

+0

,但这会与OPs声明相矛盾:“如果我从Windows资源管理器运行应用程序,应用程序运行良好” – stryba 2012-03-09 22:40:20

相关问题