Tag: 文件访问

如何使用Java同步共享文件夹中的文件访问(或者:网络级别的ReadWriteLock)

我在一个虚拟机中运行多个应用程序。 我在一台服务器上运行多个虚拟机。 我有多台服务器。 它们都使用linux上的共享文件夹共享文件。 所有应用程序都会读取和写入该文件。 在写入过程中,不允许任何应用程序读取此文件。 写入相同:如果应用程序正在读取文件,则不允许应用程序写入它。 如何设置同步应用程序,以便它们在读取之前等待写入过程完成,反之亦然? (必须同步vm中的应用程序以及跨服务器的应用程序) Curent实现使用“文件信号量”。 如果要写入文件,应用程序会尝试通过在共享文件夹中创建一个附加文件(将其命名为“file.semaphore”)来“获取”信号量。 如果“file.semaphore”文件已存在,则表示信号量已被其他应用程序锁定。 这种方法的问题是我无法确保“文件存在”-test和“create file” – 操作是primefaces执行的。 这样,两个应用程序可能会测试“file.semaphore”文件,看它不存在并尝试同时创建该文件。

Java – 使用用户身份validation访问文件

我有一个服务器,我使用java应用程序处理数据库和文件。 当我启动我的应用程序时,我使用以下命令报告有关服务器的文件访问权限: public static boolean folderExists(String folderPath) { File folderToCheck = new File(folderPath); return folderToCheck.exists(); } 每次我启动我的应用程序(重新启动计算机后),即使服务器已开启,我也会得到错误的响应。 原因是因为我必须以另一个用户身份进行身份validation。 我所做的是通过Windows访问服务器,在那里我被要求输入用户名/密码,然后我得到关于文件访问服务器的真实响应。 有没有办法通过Java提供身份validation用户名/密码 ,而不是通过Windows? 谢谢