gpt4 book ai didi

通过 Windows 控制台启动时,java 程序不会写入文件

转载 作者:行者123 更新时间:2023-12-01 23:07:56 24 4
gpt4 key购买 nike

标题说明了一切,但这里还有一些更多细节。我已经通过 eclipse 将我的 java 程序导出为可运行的 jar。在运行时,它会记录应保存在文本文件中的数据,此外,一些信息还会打印到控制台,仅供引用。

当我通过双击启动 jar 时,它会在文件不存在时创建该文件并正确执行其工作,但显然没有输出到控制台,因为没有输出。为了获得控制台输出,我尝试使用以下命令通过 Windows 控制台启动 jar:java -jar c:\path-to-the-jar\myJar.jar。它可以工作并将我的输出打印到控制台,但现在它不会创建文件,也不会写入现有文件。我尝试以管理员身份启动控制台,但这不是解决方案。我也尝试过这个命令: javaw -jar c:\path-to-the-jar\myJar.jar 但它不会输出到控制台,而是写入文件...

我必须使用特殊的启动条件或其他命令吗?我真的不知道在哪里搜索以及在谷歌上搜索什么。

提前致谢!-菲尔

这是我处理输出和文件写入的代码

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.nio.charset.StandardCharsets;

class DataLog {
private Path path;
private LocalDate actualDate;
private long errorCount = 0;

DataLog() {
try
{
path = Paths.get("LSV_DataLog_" + LocalDate.now() + ".txt"); //e.g. LSV_DataLog_2019-10-17.txt when its october 17th 2019
actualDate = LocalDate.now();

String str = "***" + LocalDateTime.now().toLocalDate().toString() + " - " + LocalDateTime.now().toLocalTime() + "***";

System.out.println(str);
Files.write(path, (str + System.lineSeparator()).getBytes(StandardCharsets.UTF_8), StandardOpenOption.CREATE, StandardOpenOption.APPEND);
} catch (IOException e) {
e.printStackTrace();
errorCount++;
} catch (Throwable t) {
t.printStackTrace();
errorCount++;
}
}

void addData(long val) {
try
{
if(!actualDate.equals(LocalDate.now())) {
actualDate = LocalDate.now();
path = Paths.get("LSV_DataLog_" + LocalDate.now() + ".txt"); //e.g. LSV_DataLog_2019-10-17.txt when its october 17th 2019
}

String str = LocalDate.now() + ", " + LocalDateTime.now().toLocalTime() + " Value: " + val;
System.out.println(str);
Files.write(path, (str + System.lineSeparator()).getBytes(StandardCharsets.UTF_8), StandardOpenOption.CREATE, StandardOpenOption.APPEND);
} catch (IOException e) {
e.printStackTrace();
errorCount++;
} catch (Throwable t) {
t.printStackTrace();
errorCount++;
}
}

void addInfo(String info) {
try
{
if(!actualDate.equals(LocalDate.now())) {
actualDate = LocalDate.now();
path = Paths.get("LSV_DataLog_" + LocalDate.now() + ".txt"); //e.g. LSV_DataLog_2019-10-17.txt when its october 17th 2019
}

String str = LocalDate.now() + ", " + LocalDateTime.now().toLocalTime() + ", " + info;
System.out.println(str);
Files.write(path, (str + System.lineSeparator()).getBytes(StandardCharsets.UTF_8), StandardOpenOption.CREATE, StandardOpenOption.APPEND);
} catch (IOException e) {
e.printStackTrace();
errorCount++;
} catch (Throwable t) {
t.printStackTrace();
errorCount++;
}
}
}

最佳答案

重定向到关于 eclips 中的 java consol 应用程序的这组答案会很有用,这并不是说您的问题是重复的,而是您可以在两个问题之间有一个共同的概念

Java console program

关于通过 Windows 控制台启动时,java 程序不会写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58392093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com