问题标签 [runtime-compilation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
947 浏览

java - 在 Eclipse Plugin 运行时编译 Java 类

我在这里处于一个非常尴尬的境地。我正在开发一个“Eclipse 插件”,它必须将 .java 文件“编译”成 .class 文件(甚至可能是一个 jar)。

我正在尝试使用Java Compiler API来执行以下操作:

问题是,当我打电话时_sjfm = _javaCompiler.getStandardFileManager(null, null, null);遇到 NullPointerException 因为,这是不运行 JDK 时的“预期”行为(请参阅此错误报告

这篇StackOverflow 帖子在某种程度上帮助了我,但是从必须可发布的 Eclipse 插件中编译 Java 文件的正确方法是什么?

  1. 使用替代的“编译器”,只包含罐子并使用它们?
  2. 在我的插件中包含 tools.jar(位于 JDK 文件夹中),动态加载它并从中编译?
  3. 我想不出的任何其他解决方案

你会推荐什么 ?

0 投票
1 回答
611 浏览

c# - Maximum amount of errors in CSharpCodeProvider.CompileAssemblyFromFile

I use CSharpCodeProvider to compile instant plugins for my app.

Right now it is possible to try to compile a file, that looks good, but generates many errors, for example a C# code glued with a binary file. There are many characters, that are treated with error CS1056: Unexpected character.

This behaviour is expected, but a compilation process of such a "malicious" file is very time consuming.

One solution that I find reasonable would be to limit the number of errors, after which CSharpCodeProvider.CompileAssemblyFromFile returns.

Is it possible to set such a limit?

I don't really want to inspect the file very carefully in the first place, if it's possible to avoid.

0 投票
1 回答
815 浏览

java - 热点的 -XX:-CITime 标志的输出在哪里/是什么?

我正在尝试为热点 JVM 使用“-XX:-CITime”标志(文档),但我有一些问题:

  1. 如果我想启用打印编译时间,那么我应该输入“-XX:-CITime”(带减号)还是“-XX:+CITime”(带加号)?

  2. 它在哪里输出编译时间信息?

  3. 输出应该是什么样子?

0 投票
2 回答
558 浏览

java - 在 Java 中测量一段代码在运行时的内存使用情况作为服务的持续功能

我有一个项目,我需要能够测量 CPU 和内存空间的效率,这些函数作为文本接收并在运行时使用 Java Compiler API 进行编译。

我正在使用 ThreadMXBean 来测量运行时间。有更好/更准确的方法吗?

我需要的是关于如何测量所用内存的建议。理想情况下,我想了解每项任务及其规模。但是我可以精确计算代码使用的字节数。

每一段代码都需要自动编译、测试、运行和评估。因此,使用 Profiler 并查看自己不是一种选择。欢迎您指出我的任何建议、可能的方法、资源或工具。

我需要说明这一点。这不是一次性的过程。它是网络应用程序的主要服务,可即时接收、编译、分析和评分已实现的功能。在挑选时,我预计会有 100 个并发作业在进行。使用外部工具进行一次或手动监控的过程不是我的目标。

我再说一遍:我想这样做as a service。它不是为了测试我的应用程序或分析它们。

我不咬人(或者因为我们在 SO 上投反对票),所以任何严肃的建议都会获得赞成票。

状态更新:这个项目被搁置,因为我没有可靠的方法来进行内存使用测量。我目前正在研究 JVM 世界之外的其他语言/框架也可以这样做。即便如此,我仍在积极寻求建议和研究这个项目。

0 投票
0 回答
74 浏览

java - 是否可以从 Android 应用程序中的字符串表示形式在内存中编译一个类?

我知道在 Java 中可以在运行时(在内存中)从字符串表示中编译 Java 类。之后,可以在应用程序中实例化此类。例如,一些为此提供支持的库是 BeanShell 和 commons-jci。

是否可以在 Android 应用程序中做同样的事情?

0 投票
2 回答
847 浏览

java - 是否可以在不使用外部库的情况下在 Java 中即时编译类?

在我看来,Java Compiler API 允许在运行时编译一个类,将其输出(.class 文件)写入文件系统。但是,不支持内存编译。这个对吗 ?或者可以使用这个 API 在内存中编译一个类(从一个字符串)并在之后实例化这样的类?

(我知道我可以将类编译到文件系统,然后使用自定义类加载器加载它,但我想知道是否可以在内存中编译它,而无需通过文件系统)。

仅使用 J2SE 在内存编译中是否有另一种替代机制? BeanShell(我可以做我想做的事情的库)在其网页中提到它可能会在“将来的某个时间点”包含在 J2SE 中,但是,它的JSR的状态是“休眠”(无论它是什么意思) .

更新:

理想情况下,我想知道这是否可以仅使用 J2SE 完成(或者是否有任何预期的 J2SE 增强功能将允许我在例如 Java 8 中执行此操作)。然而,关于如何做到这一点需要安装 JDK 的提示也很受欢迎(感谢 Evgeniy)。

0 投票
1 回答
304 浏览

cordova - Cordova/PhoneGap 使用(按需)动态编译 Handlebars.js

我将使用 Handlebars.js 模板引擎构建一个 JavaScript/Cordova 应用程序。应用程序构建将带有预编译的模板(像往常一样位于 www/* 文件夹中)。我的老板想稍微更改一些模板,而不必重新编译应用程序并将其发布到市场(Play 商店/Itunes ecc...)。

如何归档这种灵活性?

当我的应用程序启动时,我可以检查更新、下载新的 Handlebars 文件并重新编译它们。说得通?我可以尝试将它们保存到文件中以避免将来下载它们吗?任何人都有类似的问题/场景?

0 投票
1 回答
369 浏览

c# - 将类类型传递给运行时编译的代码 C#

我正在尝试读取和编译一个外部文件(它现在在一个字符串常量中)

我可以在外部代码中使用基本原语,但我似乎无法弄清楚如何在不生气的情况下将其传递给类类型 - 这就是我所拥有的(不包括使用行)

帮助将不胜感激

0 投票
2 回答
1795 浏览

java - 包不存在并且在运行时编译时找不到符号

即使包已连接以进行运行时编译,包也不存在错误。这是代码。

在运行时运行的代码需要导入包 com.ibm.database 。发现的错误是:

提前致谢

0 投票
5 回答
10525 浏览

java - 在 Java 中运行时编译 Groovy 类

我能够在运行时成功地在 Java 中编译 Groovy 并将其存储在数据库中并将其提取出来。如果 Groovy 类具有内部类或内部枚举,我将无法编译它。有没有人成功编译过这样的 Groovy 代码并包含内部类/枚举并能够通过类名提取脚本?

例如,我想加载下面显示的包含内部类的“测试”脚本并在运行时运行该脚本。

编译器代码:

提取脚本的代码:

运行脚本的代码:

Groovy 脚本: