我目前有一个基本的客户端-服务器应用程序要开发作为我的任务。
该程序仅用于计算质数、GCD 等。客户端是一个 GUI,服务器端(本地主机)负责执行计算并将结果发送回客户端。
其中一个要求是,当客户端用户点击“计算”按钮时,客户端程序发送客户端需要服务器执行和计算的特定任务( 、 等)ComputePrime.java的类名。ComputeGCD.java然后服务器需要检查文件夹中是否存在类文件。如果没有,则服务器向客户端发送一条错误消息。如果确实存在,那么应该按预期进行计算。
但是,出于某种原因,即使文件存在,“File.exists()”指令仍会返回 false。另外,我也需要它在运行时工作。例如,如果我ComputePrime.java在程序执行后删除 a,它应该返回 false,如果我在运行时将它添加回来,它应该返回 true。
我把它放在一个线程中,因为它无限运行只是为了看看它是否适用于动态删除和添加文件。只要是基本的 Java 代码,欢迎任何其他想法。
Thread t1 = new Thread()
{
@Override
public void run()
{
File file = new File("../Contract/ComputePrime.java");
if(file.exists())
{
System.out.println("Exists");
}
else
{
System.out.println("Not Exists");
}
try {
this.sleep(1000);
this.run();
} catch (InterruptedException ex){}
}
};
t1.start();
PS 此代码在服务器端。
这是项目文件夹结构。
我尝试使用不同的相对路径技术,例如 ".././Contract/ComputePrime.java" 、 ".././ComputePrime.java" 、 "~/Contract/ComputePrime.java"、"../Contract /Compute”和“./../Contract/ComoutePrime.java”。即使文件在文件夹中,它们都返回 false。它必须是相对路径,这样程序才能在我教授的计算机上运行。
我不确定为什么会这样。在过去的 5 或 6 个小时里,我一直在谷歌上搜索,试图解决这个问题,但我一无所获,这就是为什么我要问一个重复的问题。
最后,如果找到解决方案,是否有可能在运行时/动态地解决?比如我执行完删除文件,它应该返回false,当我放回文件时,它应该返回true。
先感谢您!
更新 尝试 file.getAbsolutePath 后,这就是我得到的输出
那么,我猜上面代码中的相对路径是正确的吗?
慕姐4208626
相关分类