相关疑难解决方法(0)

Java:设置"user.dir"时File.exists()不一致

JRE 6,在Windows XP上.

使用不同构造函数实例化两个File对象会导致该File.exists()方法的结果不一致.

免责声明:以下代码是摘要,而不是实际代码.我根本不相信这是一个File.separator问题.我首先要求得到早期反应,以防我错过了一个很好理解的问题.现在看来,重置系统属性是导致此问题的原因之一.下面的代码现在可以重现并且可以按原样使用.您可以复制/粘贴Java类并尝试它,它应该与我列出的结果一致. user.dir

建立:

创建文件夹架构C:\toto\tmp\sub.

从任何不包含tmp/sub子文件夹体系结构的文件夹中启动以下类.

码:

public class TestFileExists {

    public static void main(String[] args) {

        System.setProperty("user.dir", "C:\\toto\\");

        File root = new File("tmp");

        File sub_a = new File(root, "sub");

        File sub_b = new File(root.getAbsolutePath()+"/sub");

        System.out.println("sub_a path ? "+sub_a.getAbsolutePath());
        System.out.println("sub_a exists ? "+sub_a.exists());
        System.out.println("sub_b path ? "+sub_b.getAbsolutePath());
        System.out.println("sub_b exists ? "+sub_b.exists());
        System.out.println("Path equals ? "+ (sub_a.getAbsolutePath().equals(sub_b.getAbsolutePath())));
        System.out.println("Obj equals ? "+ (sub_a.equals(sub_b)));

    }

}
Run Code Online (Sandbox Code Playgroud)

结果: …

java filesystems

9
推荐指数
1
解决办法
5060
查看次数

如何使用 rust 将操作系统更改为目录?

我正在尝试cd在 Rust 中复制该命令,仅供学习。

但问题是我不确定如何更改操作系统 (*nix) 中的目录。我试过:

std::process::Command::new("cd")
    .arg(path) //path is a String
    .spawn()
    .expect("Directory failed");
Run Code Online (Sandbox Code Playgroud)

还尝试了:

let path = Path::new(path_str.as_str());
let changed_dir = env::set_current_dir(&path).is_ok();
Run Code Online (Sandbox Code Playgroud)

并且changed_dir是真的。

即使我尝试改变,env::set_var("PWD", path)但似乎没有任何效果。

我检查了这部分文档:https : //doc.rust-lang.org/std/env/fn.set_current_dir.html 但我认为仅适用于一种沙盒路径或目录。

还有更多想法吗?

unix linux rust

5
推荐指数
0
解决办法
1711
查看次数

更改目录并在同一命令提示符下运行批处理文件

有没有办法在命令提示符下打开命令提示符和更改目录,并使用java在同一命令提示符中运行批处理文件.

我知道如何使用java打开命令提示符.谢谢,

java

3
推荐指数
2
解决办法
3万
查看次数

从JSP更改linux的PWD

我需要从JSP执行linux命令.它工作正常.但是我需要通过JSP在linux的特定目录中启动一些sh文件.说/home/username/something/start.sh

try{
String command= "cd /home/username/something";

Runtime.getRuntime().exec(command);
Runtime.getRuntime().exec("./start.sh")


out.println("Child");
}
catch(Exception e)
{ out.println("Error");
}
Run Code Online (Sandbox Code Playgroud)

它说FIle或目录未找到.

我试过Runtime.getRuntime().exec("pwd"),它显示的东西像"java.lang.UNIXProcess@fc9d2b"!! :o

我需要更改pwd并通过jsp执行一些命令.我怎样才能做到这一点??任何帮助,将不胜感激.

java linux jsp runtime.exec absolute-path

2
推荐指数
1
解决办法
762
查看次数

标签 统计

java ×3

linux ×2

absolute-path ×1

filesystems ×1

jsp ×1

runtime.exec ×1

rust ×1

unix ×1