【问题标题】:How to compile c#/c++ files from Java Application如何从 Java 应用程序编译 c#/c++ 文件
【发布时间】:2012-09-18 15:48:41
【问题描述】:

我只是在研究编译器,我想知道是否可以从 Java 应用程序编译 c# 和 c++ 文件(例如,要从 Java 应用程序编译 java,您可以使用 JavaCompiler API)。我在网上找过这个,但我能找到的只是从 c# 和 c++ 编译 java 文件的方法,而不是相反。

如果是这样,您可以为此使用什么 API?

【问题讨论】:

  • 为每种语言调用命令行编译器?
  • @HipHipArray 你为什么要避免它?它几乎肯定会比某种互操作更容易。
  • @HipHipArray 如果不使用命令行无法教给您的命令行编译器,您希望从中学到什么?
  • @HipHipArray 有两个主要的 C# 编译器(用于 linux 系统)和一个微软分发的编译器。由于它不是在 Java 中实现的,因此除了调用 csc.exe(您可以在 Java 应用程序中自动执行)之外,您无需学习太多东西。
  • @HipHipArray - 你想要使用的是命令行编译器。你明白这就是例如 Visual Studio 是如何构建你的代码的吗?你为什么要重建已经存在的东西?看来你还有一段时间要走了,因为此时你找错了树。

标签: c# java c++ compiler-construction


【解决方案1】:

如果您知道编译和执行 .cpp 文件的系统命令(不太了解 c#),您可能需要查看 this。它详细介绍了如何从 Java 程序执行系统命令。在Runtime.getRuntime().exec()中传递编译所需文件的系统命令。

【讨论】:

  • 不幸的是,这确实需要了解和管理 Java 代码中的所有显式构建信息,这远非理想。
【解决方案2】:

考虑学习如何从 Java 代码调用 ant 并使用 this ant enhancement 之类的东西。

免责声明:我对这个产品一无所知,但通过搜索“can ant build c++?”找到了它

【讨论】:

    【解决方案3】:

    对于 Windows 中的 C#:编译器 (csc.exe) 是 Windows 上 .Net 安装的一部分,可以在众所周知的位置找到(如 .Net 3.5 的 %windir%\Microsoft.NET\Framework\v3.5)。同一位置还包含可以构建项目文件 (*.csproj) 的 MSBuild.exe。

    如果使用 Csc.exe 编译单个文件,您的代码可能需要提供引用库的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多