当前位置: 首页 > 面试题库 >

文件确实存在时引发FileNotFoundException

孟茂学
2023-03-14
问题内容

我正面临着这个奇怪的问题。

我正在尝试读取位于另一台计算机上的文件作为共享资源:

\\remote-machine\dir\MyFileHere.txt

当我运行一个独立的应用程序(一个16行的Java文件)时,一切都很好。但是,当我尝试使用服务器“引擎”(这是一个应用程序引擎,非常类似于可以运行Java程序的Java
EE Application Server)使用相同的类和相同的方法读取相同的文件时,“ FileNotFoundException”被抛出。

我虽然有某种权限,但是我将资源映射为驱动器:K:\

重新运行我的Java文件,读取,一切正常。

在“引擎”-> FileNotFoundException中重新运行我的Java文件。

当我将文件复制到本地计算机(C:\ MyFileHere.txt)时,不会引发异常。

是什么导致此FileNotFoundExcecption?

我正在使用Java 1.5

据我所知,引擎几乎是透明地使用Java。

有人遇到过类似的事情吗?

还有问题吗?什么是解决此问题的好方法?我开始考虑要提供这些文件并通过http读取它们的tomcat安装,但是我认为这太多了,这就是为什么SMB协议首先要使用的原因,不是吗?而且可能我还是无法打开套接字。

安全管理器是否可能是原因(我以前从未使用过,但是我知道它存在)

如果是这种情况,是否会抛出SecurityException而不是?

非常感谢。

编辑

解决了。谢谢史蒂夫·W。

事实证明,此引擎是通过ZeroG的“ LaunchAnywhere”启动的。因此,将创建一个.exe,该.exe将依次使用指定的应用程序运行JVM。

该应用程序本身就是启动器。当它启动引擎时,拥有JVM进程的用户以某种方式(我无法弄清楚为什么或如何)是SYSTEM。正如Steve指出的那样,该用户没有NETWORK访问权限,因此无法从共享资源或映射的驱动器中读取。

解决方法(当我向制造商报告时)是创建一个.cmd文件来手动清理引擎。由于可以手动启动,因此用户确实可以访问网络。

我使用了SysInternals的“ Process Explorer”来确切地了解用于运行引擎应用程序的命令行。

真是一团糟!

感谢那些发布答案的人。


问题答案:

共享资源是否受用户名和密码保护?如果是这样,您的应用程序引擎是否以该用户身份运行?如果您的应用程序引擎作为Windows服务运行,则Windows服务不能作为“本地系统帐户”运行。此帐户无法访问网络。您必须将服务配置为以有权访问共享驱动器的用户身份运行。



 类似资料:
  • 我有一个FileSystemWatcher,它跟踪是否创建了新文件。如果是的话,我有一个方法可以读取文件并做一些事情 在下面的代码中,我得到了一个FileNotFoundException,但路径/文件确实存在!我已经检查了路径、文件名等。不知道为什么找不到文件<同样在调试模式下,我验证了path变量的路径是否正确,但当我强制它继续时,它会以某种方式运行,但不幸的是,在发布模式下它会停止。。 我得

  • 问题内容: 每当我的Jenkins作业的构建完成时,我都会使用插件(也称为插件)发送包含结果的电子邮件。另外,如果系统中存在某个文件,则我正在修改消息的默认内容,以通知该文件的存在。 为此,我正在使用插件的字段。 __ 为运行准备环境 _ 属性内容 _ __ 建立阶段 _ 执行外壳 _ __ 构建后动作 _ 可编辑的电子邮件通知 _ 预发送脚本 执行构建时,将在中创建文件并填充它(我能够从Jenk

  • 社区向导, 我真的很沮丧。谈到Spark、Hadoop等人,似乎没有什么是直截了当的。 在过去的几个小时里,我试图找到以下问题的解决方案: 版本: 操作系统:Windows 10 火花版本:2.4.6 Scala版本:2.11.12 Hadoop版本:2.7.1 Java版本:1.80_202(64位) 变量: SPARK\u主页:C:\SPARK 路径: %SPARK_HOME%\bin %HA

  • 问题内容: 正在运行将在Linux Web服务器上运行的应用程序中,以从某个目录中删除日志,但是我一直收到FileNotFound异常。 这是代码: 而且例外 但是,命令cd / home / root / multicraft / servers可以很好地工作。 我也尝试过: 问题答案: 所述构造函数接收多个串-无论是作为一个或作为参数,每一种类型的可变数量: http://docs.oracl

  • 我见过几个类似的问题,但没有一个答案在我的情况下工作,除了它可能与权限有关。 Apache提供的PHP脚本告诉我, 。我无法(用户不可用)。 我的脚本在中。DBFILE是它的某个地方(我尝试了,都在中,但也没有运气)。 没有安全模式,新安装的PHP5.4,CentOS7。 请有人给我一个线索,至少帮助调试它。比如:我如何检查我的文件是否可以从apache/我的php脚本中读取,而不运行脚本本身?如

  • 问题内容: 我正在尝试在Spring中制作我的第一个bean,但是在加载上下文时遇到了问题。我在src / main / resources中有一个bean的配置XML文件。 我收到以下IOException: `Exception in thread “main” org.springframework.beans.factory.BeanDefinitionStoreException: IO