当前位置: 首页 > 知识库问答 >
问题:

以编程方式编译.java文件[已关闭]

翁凯定
2023-03-14

我想创建一个程序,可以编译一个.java文件到一个.class文件,就像在这个网站上做的:创新网站

    null

共有1个答案

郗亦
2023-03-14
   JavaCompiler javac = ToolProvider.getSystemJavaCompiler();

JavaCompiler的javadoc展示了如何使用这个JDK工具进行工作和编译。其中一个片段:

   File[] files1 = ... ; // input for first compilation task

   JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);

   Iterable<? extends JavaFileObject> compilationUnits1 =
       fileManager.getJavaFileObjectsFromFiles(Arrays.asList(files1));
   compiler.getTask(null, fileManager, null, null, null, compilationUnits1).call();

这绝不是一项简单的任务。但是,通过shell调用Java编译器的一般方法--包括所有的修饰--也不容易,因此,这也适用于通过进程调用。

 类似资料:
  • 问题内容: 我目前正在从事一个项目,该项目要求我以编程方式将.class文件反编译为Java文件。IE我有一个程序,应该读取一个类文件并对其进行反编译,并将生成的Java源代码写入文件中。请帮我做。 编辑:我是反编译器世界的全新手。我已经看过一些API,但是我不知道到底该如何使用以及使用哪个API。任何形式的帮助将是非常可观的 编辑: 我尝试使用: 但是上面的代码只是在指定的目录中创建了一个名为“

  • 问题内容: 我想知道是否已经有一个库可以以编程方式编写Java类或方法? 我正在寻找能够将新的源代码写入现有文件或扩展已经存在的文件的库。 问题答案: 查看Eclipse JDT。 Eclipse Java开发工具(JDT)提供用于访问和操作Java源代码的API。它允许访问工作空间中的现有项目,创建新项目以及修改和读取现有项目。 更具体地说,您可以使用Java Model API创建新的Java

  • 我正在使用netty 4.0。24.4决赛。 我需要以编程方式启动/停止网络服务器。 在启动服务器时,线程在 请提供一些如何正确操作的提示。下面是由主类调用的EchoServer。谢谢 更新:我用以下方式更改了EchoServer类。其想法是在新线程中启动服务器,并保留到EventLoopGroup的链接。这条路对吗?

  • https://developer.android.com/codelabs/build-your-first-android-app#1 该网站第8页第3.3步说:“在FirstFragment类中,添加采用单个视图参数的方法countMe()。单击Count按钮并调用click listener时,将调用此方法。”但是我在哪里添加这个函数呢?在这里输入图像描述 这个地方是正确的吗?如果它是正确

  • 问题内容: JFrame与用户按下X关闭按钮或按在Windows上)相同,获得关闭的正确方法是什么? 我通过以下方式设置了我想要的默认关闭操作: 它完全符合我想要的上述控件的功能。这个问题不是关于这个的。 我真正想做的是使GUI的行为与按下X关闭按钮的行为相同。 假设我要扩展,然后通过来添加我的适配器的实例作为侦听器。我想看到的调用相同的序列通过,以及作为将与出现X关闭按钮。可以这么说,撕开窗户与

  • 问题内容: 我将类名称存储在属性文件中。我知道类存储将实现IDynamicLoad。如何动态实例化该类? 现在我有 newInstance是否仅加载编译的.class文件?如何加载未编译的Java类? 问题答案: 如何加载未编译的Java类? 你需要先编译它。可以使用以编程方式完成此操作。这仅需要在JRE顶部的本地计算机上安装JDK。 这是一个基本的启动示例(不包括明显的异常处理): 哪个像 如果