从命令行执行 java 程序时文件未写入

File not writing when java program is executed from command line

我有这段代码可以从 IDE 完美执行,创建一个新文件并写入它,但是当我从命令行 运行 它不会写入文件.它仍然打印 println 并接收我的扫描仪输入,但它不会写入新文件。

public class test {
   public static void main(String[] args){
      Scanner s = new Scanner(System.in);
      File f = new File("print.txt");
      System.out.println("'y' for yes or 'n' for no");

      try {
         BufferedWriter k = new BufferedWriter(new FileWriter(f));
         if (s.next().equals("y")) {
            k.write("y");
         } 
         else {
            k.write("n");
         }
         k.flush();
      }
      catch (Exception e){
         e.printStackTrace();
      }
   }
}

我在 Windows 10,我用来执行程序的命令是

javac "C:\Users\David\Documents\Java\test.java"
java -cp "C:\Users\David\Documents\Java" test

感谢您的帮助。

没关系,我意识到文件只是在不同的目录中创建的,因为我没有在代码中指定要将文件写入的目录。傻我。

是的..你明白了。使用 cp- (ClassPath cmd) 时,您必须指定需要保存 java 文件的目录名称。