在本地计算机上使用Java从服务器打开目录

在本地计算机上使用Java从服务器打开目录,java,swing,Java,Swing,我制作了一个Java应用程序,在某个点上打开一个本地目录或文件。该程序位于服务器上(由其他桌面执行)。当应用程序打开现有文件夹/文件(位于服务器上,远程访问)时,不会弹出任何屏幕。如果我在我的桌面上运行Java程序,打开本地文件夹/文件就可以了 我认为问题在于,当我调用“打开文件夹/文件功能”时,我会访问服务器的桌面。但是窗口需要由“呼叫”pc打开。因此,我需要指定应使用呼叫计算机的桌面 我怎样才能做到这一点 以下是我用来打开文件夹/文件的函数: try { if (Desktop.is

我制作了一个Java应用程序,在某个点上打开一个本地目录或文件。该程序位于服务器上(由其他桌面执行)。当应用程序打开现有文件夹/文件(位于服务器上,远程访问)时,不会弹出任何屏幕。如果我在我的桌面上运行Java程序,打开本地文件夹/文件就可以了

我认为问题在于,当我调用“打开文件夹/文件功能”时,我会访问服务器的桌面。但是窗口需要由“呼叫”pc打开。因此,我需要指定应使用呼叫计算机的桌面

我怎样才能做到这一点

以下是我用来打开文件夹/文件的函数:

try {
    if (Desktop.isDesktopSupported()) Desktop.getDesktop().open(new File(path));
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

远程访问应用程序的方式如下:\\10.0.0.1\Java\App.jar

如果您这样访问Java应用程序:\10.0.0.1\Java\App.jar,您仍然在本地计算机上运行应用程序。
为了让它在服务器上运行,您需要在该服务器上运行一个Java进程,然后在本地计算机上运行另一个Java应用程序,它是服务器应用程序的客户端。

如果您像这样访问Java应用程序:\10.0.0.1\Java\App.jar,您仍然在本地计算机上运行应用程序。
为了让它在服务器上运行,您需要在该服务器上运行一个Java进程,然后在本地计算机上,您需要另一个Java应用程序作为服务器应用程序的客户端。

我假设您使用的是Windows,并且您的服务器上安装了SMB共享。尝试将远程服务器目录装载到本地驱动器号,如R:,这将解决访问问题。

我假设您使用的是Windows,并且您的服务器装载了SMB共享。尝试将远程服务器目录装载到本地驱动器号,如R:,这将解决访问问题。

这不会导致安全漏洞吗?我怀疑,
Java
安全性允许在未经
用户同意的情况下访问系统资源。尽管我不是安全相关材料方面的专家,但我只是提出了一个想法:-)如果您通过托管在SMB共享上的JAR运行java应用程序,那么即使JAR文件是远程的,该应用程序也在本地JRE中运行。为了合理地回答这个问题,您必须告诉我们
isDesktopSupported()
的返回值是多少,或者如果您遇到异常,该异常是什么。这不会导致安全漏洞吗?我怀疑,
Java
安全性允许在未经
用户同意的情况下访问系统资源。尽管我不是安全相关材料方面的专家,但我只是提出了一个想法:-)如果您通过托管在SMB共享上的JAR运行java应用程序,那么即使JAR文件是远程的,该应用程序也在本地JRE中运行。为了合理地回答这个问题,您必须告诉我们
isDesktopSupported()
的返回值是什么,或者如果您遇到异常,该异常是什么。我刚刚尝试了这个,现在该应用程序根本无法运行。当我按下GUI上的按钮时,它不会执行任何操作…我只是尝试了一下,现在应用程序根本无法运行。当我按下GUI上的按钮时,它不会执行任何操作。。。