如何将 java 源代码保存在 xml 文件中,并在 IDE 中编辑/编译它?

     2023-05-07     260

关键词:

【中文标题】如何将 java 源代码保存在 xml 文件中,并在 IDE 中编辑/编译它?【英文标题】:How to save java source code in an xml file, and edit/compile it in an IDE? 【发布时间】:2012-10-15 12:46:38 【问题描述】:

我们有一个 java 应用程序,用户可以在其中编写/执行他们自己的 java 代码并使用已编译 jar 的导入 - 即他们编写它,它由应用程序编译和运行。他们还可以保存此代码(连同他们正在使用的各种其他信息) - 目前保存到人类可读的 xml 文件中。

我希望能够在 IDE(主要是 Intellij)中使用那些保存 xml 文件,这样如果用户在 IDE 中更改了他们编译的 jar 中的内容,这些更改也可以在保存 xml 文件中获取.

例如,如果保存文件使用了已编译 jar 中的类,则它可能具有以下导入:

import com.company.project.package.subpackage.MyClass;

假设这个类被移动了,所以导入是:

import com.company.project.package.subpackage.subsub.MyClass;

...这将更改使用该类和导入的所有保存 xml 文件 - 就像 IDE 会更改已编译项目中的所有其他用法一样。

(这个和其他例子的出现是因为编译的 jar 一直在开发和使用上述应用程序。)

目前,如果我要将保存的 xml 文件添加到 IDE 中的子项目,用户可以手动编辑保存文件,可能会利用“查找/替换”或“在文本中搜索使用情况” ' 职能。这总比没有好,但仍然是一个相当复杂/复杂的过程。另外,没有检查保存文件中的代码与编译项目中的代码是否一致。

我正在考虑的一种方法是使用脚本或测试类来解压缩保存的 xml 文件,将 java 代码写入 java 文件,然后尝试编译(并可能运行/测试)这些 java 文件。

进一步的步骤是编写一个 maven 插件(我们使用 maven 进行构建周期)或一个 ant 脚本(ant 仍然有它的用途......)来执行此操作,并可能使这部分成为我们构建过程的一部分 -即如果不确保其子项目中的所有保存 xml 文件也可以编译,则无法编译该项目。

这看起来是一种合理的方法吗? 是否有任何人可以建议的替代方法?

【问题讨论】:

他们不能将他们的 java 源代码保存在 .java 源代码文件中吗?为什么选择 XML? 因为,正如我的问题所述,它与其他各种信息一起被保存。我考虑了两个保存文件的可能性(即一个用于代码,一个用于其他东西......)但我确定那些不匹配/损坏等的危险太大了。 您可以在源文件头的 javadoc 中使用自定义注释,将所有内容保存在一个位置。取决于您的元数据有多复杂。 “我确信保存为 .java 文件不是我正在寻找的解决方案。” 将其保存为带有 1 个(或更多)XML 的 Zip文件以及所需的任何源(根据包的路径)。这具有双重优势,即允许源与 XML 不同的编码,以及整合项目的所有必要部分。您甚至可以轻松地包含其他文件、清单、帮助文件等。 @AndrewThompson - 我已经对您的建议进行了进一步的思考,并将尝试实施它。您能否将其发布为答案,以便我对其进行投票(并且可能接受)? 【参考方案1】:

..另存为 .java 文件不是我正在寻找的解决方案。

将其保存为 Zip,其中包含 1 个(或多个)XML 文件以及所需的任何源(在路径中根据包)。您甚至可以轻松地包含其他文件、清单、帮助文件等。

这有很多优点:

它允许源文件和包含文件使用与 XML 不同的编码 它将项目的所有必要部分合并到一个文件中,无需任何“跳槽”以使一种格式适合另一种格式。 它允许根据数据使用不同的压缩级别(例如,文本/XML 可以很好地压缩,而序列化图像则不能)。

【讨论】:

“并评论它的进展情况......” 我期待阅读您的报告。 :) 那么.. 怎么样?

如何将列表保存到 XML 文件中

】如何将列表保存到XML文件中【英文标题】:HowtosaveaListintoanXMLfile【发布时间】:2013-09-2716:00:43【问题描述】:我有以下代码。其中我有一些东西保存到一个列表中,我希望将这两个列表保存在一个XML文件中,但是程序在尝试调... 查看详情

如何在 Java 中编写保存按钮的功能?

】如何在Java中编写保存按钮的功能?【英文标题】:HowdoIcodethefunctionoftheSavebuttoninJava?【发布时间】:2014-06-0903:53:51【问题描述】:我有一个现有的文本文件并在其中编辑了一些内容。我想将一行文本保存到同一个文件中。目前... 查看详情

java示例代码_在java中,如何从输入流中读取固定长度并保存为文件

java示例代码_在java中,如何从输入流中读取固定长度并保存为文件 查看详情

如何将 XML 保存到文件中

】如何将XML保存到文件中【英文标题】:HowtosaveXMLtoafile【发布时间】:2012-05-1700:08:36【问题描述】:如何将翻译后的XML保存到磁盘上的实际文件中?我是XML/XSLT的新手,我正在努力解决这个问题。我似乎找不到任何适合我的例子... 查看详情

如何使用 Linq to XML 将 HTML 保存在 XML 文件中?

】如何使用LinqtoXML将HTML保存在XML文件中?【英文标题】:HowtosaveHTMLinXMLfileusingLinqtoXML?【发布时间】:2010-11-0107:58:36【问题描述】:我正在尝试使用LinqtoXML在XML文件和Windows窗体应用程序之间保存和检索一些HTML。将其保存到XML文... 查看详情

如何将用户创建的 QTreeItem 结构保存在 xml 文件中? [复制]

】如何将用户创建的QTreeItem结构保存在xml文件中?[复制]【英文标题】:HowtosavetheQTreeItemstructurecreatedbyuserinxmlfile?[duplicate]【发布时间】:2015-10-0108:48:06【问题描述】:如何创建xml文件包含由用户创建的QTreeWidgetItem的级别层次结构... 查看详情

如何将更改的 SimpleXML 对象保存回文件?

】如何将更改的SimpleXML对象保存回文件?【英文标题】:HowtosavechangedSimpleXMLobjectbacktofile?【发布时间】:2011-03-2600:08:45【问题描述】:所以,我有这段代码在我的XML文件中搜索特定节点,取消设置现有节点并插入具有正确数据的... 查看详情

将 XML 文件保存到 clientbin

...在尝试读取并保存到客户端bin中的XML文件我已经设法找出如何在clientbin中读取xml文件。现在我也想保存到它,保存时文件已经存在于clientbin中。Uriurl=newUri("myXml.xml",UriKind.Relative);WebClie 查看详情

java示例代码_在Java中,如何将XML解析为字符串而不是文件

java示例代码_在Java中,如何将XML解析为字符串而不是文件 查看详情

java示例代码_用java将一个大字符串保存到xml文件中

java示例代码_用java将一个大字符串保存到xml文件中 查看详情

如何将本地保存的 xml 文件保存到 .plist 文件中

】如何将本地保存的xml文件保存到.plist文件中【英文标题】:Howtosavelocallysavedxmlfileinto.plistfile【发布时间】:2011-07-0810:13:37【问题描述】:我需要编写和更新基于节点的XML文件。为此我发现我需要将本地XML文件转换为plist文件。... 查看详情

java示例代码_在android中用xml附加标签?以及如何保存xml文件

java示例代码_在android中用xml附加标签?以及如何保存xml文件 查看详情

如何解析junit结果xml文件并在java代码中获取testcase?

使用类Test_XyzDymanic中的@TestFactory,方法testXyzDymanicallly和自定义Suite.xml实现了动态JUnit5测试,以添加在运行时解析的多个测试用例。根据Suite.xml中的情况,将获取两个映射mapExpected和mapAcutal,将其作为assertIterableEquals(mapExpected.entr... 查看详情

如何在java中将字符串保存在文件中[重复]

】如何在java中将字符串保存在文件中[重复]【英文标题】:Howtosavestringinfileinjava[duplicate]【发布时间】:2014-10-2510:22:48【问题描述】:我正在尝试编写一个java代码,它将创建一个.txt文件到任何目录。并且,代码会将一些字符串... 查看详情

如何将不同的 Cppcheck 结果保存在同一个 Xml 文件中

】如何将不同的Cppcheck结果保存在同一个Xml文件中【英文标题】:HowtosavedifferentCppcheckresultsinasameXmlfile【发布时间】:2017-07-2812:27:18【问题描述】:我已经在做cppcheckpath.c--xml-version=22>path2.xml。问题是我想在不同的文件中做几个c... 查看详情

java示例代码_Android-如何将HashMap保存到文件并加载

java示例代码_Android-如何将HashMap保存到文件并加载 查看详情

如何在 Java 中修改 HTML 文件并保存更改

】如何在Java中修改HTML文件并保存更改【英文标题】:HowtomodifyaHTML-fileinJavaandsavethechanges【发布时间】:2011-04-1313:10:15【问题描述】:我必须对HTML元素进行简单的更改(添加和删除一些属性)。问题是我必须通过很多HTML文件才能... 查看详情

如何将解析和更改的 DOM 文档保存在 xml 文件中?

】如何将解析和更改的DOM文档保存在xml文件中?【英文标题】:HowtosaveparsedandchangedDOMdocumentinxmlfile?【发布时间】:2011-06-0111:54:11【问题描述】:我有xml文件。我需要阅读它,进行一些更改并将新更改的版本写入某个新目的地。... 查看详情