是否有任何Java库可以在像http.conf这样的unix配置文件上运行

Gel*_*Luo 13 java linux perl config

有很好的Perl库(例如Apache :: Admin :: Config)可以在像httpd.conf这样的传统unix配置文件上运行.有谁知道是否有好的Java库来完成类似的任务?

我知道有一个名为Augeas的 ac库,带有Java绑定.以前有人用过吗?

谢谢!

cly*_*yfe 6

我用(编程方式,用于项目)使用来自许多*nix项目的许多配置文件,如Apache,Squid,smtpd,ldap,PAM等等.我已经意识到有一些不常见的格式(语法)但是相反,每个项目都定义了自己的ad-hoc格式,并实现了自己的自定义解析器.没有共同的规范.

所以*nix上的aproach项目配置文件不是"使用解析器库"而是"编写自己的解析器".

然而,有些项目试图坚持某种标准.最常见的AMOG theese是.ini文件格式(起源于OS/2和Windows)或GConf信息文件格式,用于theese你会发现很容易使用的解析器.

Apache(读取a-patch-e,如许多补丁中所做的)是在自由格式类中.它以一种var value格式开始,经过大量的"修补"后,添加了一个用于指定配置变量的范围和上下文的warty-xmlish语法.

  • 如果您只是调整配置文件的一部分,可能最好的方法是扫描文件,查找所需的配置变量,然后在本地使用该文件.
  • 但是,如果您需要配置整个文件,最好使用基于C的Java解析器.


Man*_*ngh -2

Commons Configuration 确实操作配置文件。

它甚至还提供了将操作的属性保存在新文件中的选项。

PropertiesConfiguration config = new PropertiesConfiguration("usergui.properties");
config.setProperty("colors.background", "#000000);
config.save("usergui.backup.properties);
Run Code Online (Sandbox Code Playgroud)

请参考以下链接

http://commons.apache.org/configuration/userguide/howto_filebased.html#File-based_Configurations

甚至,Apache Ant 还可以帮助您使用自己的 PropertyHelper 实现来操作现有的配置文件。

http://ant.apache.org/manual/properties.html#propertyHelper

评论回复后编辑

Apache 配置确实使用 bean Factory 提供了可扩展性,您需要自己创建 Apache 配置文件 httpd.conf 域类,才能使其正常工作。

在 java 中定义 Apache 模块,您可以查看 Netloony 源代码、service/apache/modules 来了解这一点。

http://netloony.sourceforge.net/userguide/intro.html

在netloony中,配置文件值显示在JTable中,您需要使用任何配置框架将其保存在文件中。

希望这有帮助,我知道目前 java 中没有任何现成的东西可以读取 apache conf 文件。我试图给你一个指示,你可以从哪里开始..