【问题标题】:Running java from command line doesnt create new.txt从命令行运行 java 不会创建 new.txt
【发布时间】:2014-10-23 21:36:31
【问题描述】:

我制作了一个小型 Java 应用程序,除此之外,它还必须将数据写入 .txt 文件。 如果文件存在,则应在底部附加文本,但如果没有文件,则应创建新文件。

当我在 Netbeans 中执行代码时它可以工作,但是当我从命令行执行它时它不起作用(Windows 7)。

这是我正在使用的代码:

Writer writer = null;

try {
    writer = new BufferedWriter(new OutputStreamWriter(
          new FileOutputStream(doc+".txt",true), "utf-8"));
    writer.write("===============================================");
    writer.append(System.lineSeparator());
    writer.write("Results "+i+":");
    writer.append(System.lineSeparator());
    //few more text lines
    //..
} catch (IOException ex) {
    System.out.println("Error.");
} finally {
   try {writer.close();} catch (Exception ex) {}
}

正在执行的命令(文件路径 100% 正确):

java -jar "C:\Users\restoffilepath.jar" 5 5 1 docname

为什么从cmd运行时不创建新文档?

感谢任何帮助。

【问题讨论】:

  • 发生异常时显示“错误”没有帮助。尝试至少打印堆栈跟踪:ex.printStackTrace()
  • 你的班级名称是public static void main(String[] args0) { }吗?您是否正确导出了.jar 文件?
  • 主类是 public static void main(String[] args){} 我相信我确实正确导出了它。
  • 提供您在命令行中实际键入的命令以尝试运行它:)
  • 很有可能它实际上正在创建文件,但不是您期望它放置的位置。您在 NetBeans 中运行的目录可能与从命令行运行时的目录不同。

标签: java file cmd


【解决方案1】:

几乎可以肯定正在创建文件,如果您没有收到错误报告。但是,当您从命令行运行程序时,NetBeans 运行程序的工作目录可能与工作目录不同,因此该文件可能最终位于与您正在查看的目录不同的目录中。

(从评论转换的答案:这确实是 OP 遇到的问题。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 2019-08-27
    • 2020-07-06
    相关资源
    最近更新 更多