GVKun编程网logo

如果编译一个空的Java文件会怎样?(如果编译一个空的java文件会怎样呢)

4

本文的目的是介绍如果编译一个空的Java文件会怎样?的详细情况,特别关注如果编译一个空的java文件会怎样呢的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解如果编译一

本文的目的是介绍如果编译一个空的Java文件会怎样?的详细情况,特别关注如果编译一个空的java文件会怎样呢的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解如果编译一个空的Java文件会怎样?的机会,同时也不会遗漏关于Gradle构建一个空的Jar文件、java – 在运行时更改log4j属性文件会导致创建一个空的默认日志、javascript – 如果取消对localStorage的写入会怎样?、Java如何在干净模式下运行Eclipse?如果我们这样做会怎样?的知识。

本文目录一览:

如果编译一个空的Java文件会怎样?(如果编译一个空的java文件会怎样呢)

如果编译一个空的Java文件会怎样?(如果编译一个空的java文件会怎样呢)

当我编译一个空的Java文件时,它没有产生任何类文件。所以我想知道编译器在编译一个空的Java文件时如何反应?我认为在这种情况下,它应该生成一个空的类文件,但事实并非如此。那么为什么不呢?

Gradle构建一个空的Jar文件

Gradle构建一个空的Jar文件

现在正在进行的项目是尝试构建为Java项目并从src / main / java获取src,因为这是Java项目的默认设置。因此,您需要id 'groovy'中的id 'java'而不是plugins来使其进入src / main / groovy并在其中构建.java和.groovy文件。

java – 在运行时更改log4j属性文件会导致创建一个空的默认日志

java – 在运行时更改log4j属性文件会导致创建一个空的默认日志

我有一个使用log4j登录文本文件的应用程序,我在我的可执行jar文件中放置了一个log4j.properties文件,其中包含默认的日志配置参数.

我的log4j.properties文件如下所示:

log4j.rootLogger=INFO,A1
log4j.appender.A1=org.apache.log4j.FileAppender
log4j.appender.A1.File=mylogfile.log
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{dd/MM/yyyy HH\:mm\:ss,SSS} %-5p [%t] - %m%n

我的应用程序还有一个命令行选项,允许用户更改日志文件名,所以我有一个像下面这样的函数在运行时更改log4j的设置:

public void changeLogFileName(String filename) {    
          props.setProperty("log4j.appender.A1","org.apache.log4j.DailyRollingFileAppender");
          props.setProperty("log4j.appender.A1.DatePattern","'-'ddMMyyyy");
          props.setProperty("log4j.appender.A1.File",filename);
          LogManager.resetConfiguration();
          PropertyConfigurator.configure(props);
    }

一切正常,除非执行语句LogManager.resetConfiguration()和/或PropertyConfigurator.configure(props)时自动创建一个默认的空日志文件(mylogfile.log).
之后,我在应用程序中记录的所有内容都将在新文件中正确写入,但无论如何都会创建一个空文件(在log4j.properties中使用默认日志文件名的名称).

有没有办法避免创建空的默认日志文件?

解决方法

我最终开发了 log4j-additions库,允许创建一个Lazy初始化appender,避免创建空日志文件.

log4.properties

#Lazy File Appender
log4j.appender.A1=org.pollerosoftware.log4j.additions.appenders.LazyFileAppender
log4j.appender.A1.File=juakaritoglory.log
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{dd/MM/yyyy HH\:mm\:ss,SSS} %-5p [%t] - %m%n

改变路径的方法

/**
 * Change the path of log file
 * @param path new path
 */
public synchronized void changeLogPath(String path) {
      String filename = (path.endsWith(File.separator)) ? path : path + File.separator;
      filename += LOGFILENAME + "-{timestamp}.log";

      props.setProperty("log4j.appender.A1","org.pollerosoftware.log4j.additions.appenders.TimestampFileAppender");
      props.setProperty("log4j.appender.A1.TimestampPattern","ddMMyyyy");
      props.setProperty("log4j.appender.A1.File",filename);
      LogManager.resetConfiguration();
      PropertyConfigurator.configure(props);
}

javascript – 如果取消对localStorage的写入会怎样?

javascript – 如果取消对localStorage的写入会怎样?

假设我打电话给本地存储,如下所示:

window.localStorage.setItem("key", bigJsonObject);
@H_301_6@

然后,用户立即关闭其Web浏览器.结果会是什么?

window.localStorage.getItem("key") 
@H_301_6@

bigJsonObject会被部分写入吗?或者整个写入会失败吗?他们有什么方法可以保证不会有部分写入?

解决方法:

参见§4.1 of the “web storage” specification:

The setItem()@H_301_6@ and removeItem()@H_301_6@ methods must be atomic with respect to failure. In the case of failure, the method does nothing. That is, changes to the data storage area must either be successful, or the data storage area must not be changed at all.

但是,(历史上)在这方面存在浏览器错误,e.g. some time before Chrome 21 until some time before Chrome 29.

Java如何在干净模式下运行Eclipse?如果我们这样做会怎样?

Java如何在干净模式下运行Eclipse?如果我们这样做会怎样?

如果某些东西无法正常工作,或者某些插件未在我的Eclipse中正确加载,我通常会建议您以干净模式打开Eclipse。

那么,如何在干净模式下运行?如果我这样做会怎样?

今天的关于如果编译一个空的Java文件会怎样?如果编译一个空的java文件会怎样呢的分享已经结束,谢谢您的关注,如果想了解更多关于Gradle构建一个空的Jar文件、java – 在运行时更改log4j属性文件会导致创建一个空的默认日志、javascript – 如果取消对localStorage的写入会怎样?、Java如何在干净模式下运行Eclipse?如果我们这样做会怎样?的相关知识,请在本站进行查询。

本文标签: