Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Windows服务远程访问Windows上的文件_Java_Windows_File - Fatal编程技术网

Java 使用Windows服务远程访问Windows上的文件

Java 使用Windows服务远程访问Windows上的文件,java,windows,file,Java,Windows,File,我有一个执行.bat文件的Windows服务。这个.bat文件执行一些Sava代码,读取一些文件的信息。我需要访问的文件与正在运行的服务不在同一台计算机中。所以我应该使用像G:\这样的映射来访问它们 即使在运行服务时文件存在于G:\上,文件exists()和文件canRead()始终返回false 如果我手动执行.bat,一切都很好,但我需要使用服务来执行它 该服务正在运行,用户有权读取此G:\映射上的所有文件 有人知道什么是错误的吗?作为Windows服务运行时,为什么不能访问这些远程文件 所

我有一个执行
.bat
文件的Windows服务。这个
.bat
文件执行一些Sava代码,读取一些文件的信息。我需要访问的文件与正在运行的服务不在同一台计算机中。所以我应该使用像
G:\
这样的映射来访问它们

即使在运行服务时文件存在于
G:\
上,文件
exists()
和文件
canRead()
始终返回false

如果我手动执行
.bat
,一切都很好,但我需要使用服务来执行它

该服务正在运行,用户有权读取此
G:\
映射上的所有文件

有人知道什么是错误的吗?作为Windows服务运行时,为什么不能访问这些远程文件


所讨论的操作系统是
windowsxp

问题通常是运行该服务的用户没有相同的G:drive以及相同的访问权限


我建议您以运行服务的用户身份登录,看看该用户看到了什么。

会话之间不会共享驱动器映射,并且服务会话不会像交互式会话那样自动重新建立驱动器映射。您应该在批处理文件中放置一个net use命令,以便在服务会话中显式地建立驱动器映射。

尝试执行“\\servername\c$\path\u to\u bat\u file”,其中c是远程机器上的驱动器,当然,必须替换为bat文件所在的驱动器的名称(无映射)。当然,这是假设所有访问权限都已到位。servername是用来映射驱动器的。运行服务的用户与我手动执行.bat时登录的用户相同。但是如果我在登录时运行服务,我也会遇到同样的问题。不过,我可以用Explorer访问G:drive,你可以改用UNC路径吗?你确实可以摆脱你的后座,不是吗?是的,我可以。不知道还能尝试什么。。。我还尝试在linux中使用file://like,但没有任何帮助:(最糟糕的情况是,您可以使用不需要驱动器号的CIFS库。