问题标签 [javacompiler]

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 回答
1711 浏览

java - 找不到 JavaCompiler 编译的类

我曾经JavaCompiler编译过一个即时生成的类。编译任务成功。然后我尝试使用加载编译的类Class.forName("MyClass");它以 ClassNotFoundException 失败。这样做是否存在已知问题?

0 投票
1 回答
934 浏览

java - 如何动态编译多个java源文件

有没有办法以编程方式从文件夹中存在的 .java 文件生成类文件。有使用 JavaCompiler.CompilationTask 来编译单个 java 文件的示例。但我需要从多对 .java 代码(从 JAXB gen 生成)生成类文件。

0 投票
1 回答
541 浏览

java - Java:在 jre 上运行时编译代码

我需要在运行时在 java 中编译一些代码。我查了这个,它看起来像这样做的方法。到目前为止一切顺利,但我需要在每个平台上运行最终程序。因此,如果只有 aj r e的系统,我就会遇到麻烦。

现在我考虑将编译器作为java lib。但我也不确定将 tools.jar 从 java jdk 复制到我的项目中的解决方案。这是一种有效的方法,还是有其他解决方案或者我可以使用的库?

我需要这个,因为我想将脚本翻译成 java 代码并执行它。

谢谢!

- 编辑 -

为什么我需要这个?

用户应该对我的程序某些部分的行为产生影响。所以有一种类似于小脚本语言的东西。由于性能原因,我认为将其转换为 java 源代码然后转换为字节码并使用它是最好的解决方案。此脚本不会经常更改,并且仅在程序的主要部分运行之前更改。如果有更好的选择,我也很乐意了解它们。

如果有任何问题,或者如果您需要有关具体细节的更多信息,请询问。

0 投票
1 回答
71 浏览

java - Java需要进程在完成后返回

我的问题需要 2 个问题,但我会保持简短。所以我需要启动一个bat文件。现在我这样做:

bat 文件启动 java 编译器以编译另一个 java 文件并将错误消息定向到 txt 文件中。这是bat文件的样子:

现在的问题是,我必须包含 3 秒的睡眠,以确保 error.txt 已创建并充满错误。这是非常不满意的。我要么需要 bat 文件的返回值,所以程序的其余部分会等待,直到它完成,或者需要一种从程序中启动 java 编译器并将错误消息定向到 txt 文件的方法。

谢谢大家。

0 投票
1 回答
1797 浏览

java - Java 错误 - 从命令提示符运行 java 程序时出现 NoClassDefFoundError

团队,

很长一段时间以来,我一直对一个基本错误感到震惊。有人可以指出我在这里缺少什么。

创建了一个简单的 java 程序(它将连接到套接字并发送消息)。下面提到的代码

使用 IDE 编译和运行 - 成功。

如果尝试使用命令提示符,则会失败并出现以下异常。

也尝试设置类路径。.class 文件也位于与 .java 文件相同的路径中。

下面是命令提示符中遵循的步骤以供参考。

步骤1

C:\Users\prem\Documents\NetBeansProjects\Client 服务器套接字示例\src\ ent\sever\socket\example>set Path="C:\Program Files\Java\jdk1.6.0_32\bin"

步骤 2 C:\Users\prem\Documents\NetBeansProjects\Client Sever Socket Example\src\ ent\sever\socket\example>set HomePath="C:\Program Files\Java\jdk1.6.0_32"

第 3 步

C:\Users\pre00185\Documents\NetBeansProjects\Client 服务器套接字示例\src\ ent\sever\socket\example>javac Clientprog.java

步骤 4 C:\Users\pre00185\Documents\NetBeansProjects\Client Sever Socket Example\src\ ent\sever\socket\example>java Clientprog

线程“main”中的异常 java.lang.NoClassDefFoundError: Clientprog 原因:java.lang.ClassNotFoundException: Clientprog at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method ) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 在 java .lang.ClassLoader.loadClass(ClassLoader.java:247) 找不到主类:Clientprog。程序将会退出。

0 投票
1 回答
857 浏览

java - (JavaCompiler) 同时编译多个文件

因此,我正在构建一个程序,该程序使用内置的 JavaCompiler API 来编译 .java 文件的目录。我通过一个目录解析它来编译文件,甚至编译它们,只是不是按照我需要的顺序。我找回了经典的“找不到符号”,因为某些类相互依赖。所以一组用javac编译得很好的文件,我的程序失败了。

我需要一种方法来按特定顺序编译它们(我的最后一个选项实际上是解析文件以获取引用,但我宁愿不这样做)或同时编译。

这是我的代码:

编辑:通配符(即 *.java)在 JavaCompiler 中不起作用...

回答: 从评论中,我尝试代替 files[i].getPath() 向编译器传递包含所有文件的所有路径的 String[]。效果很好!谢谢!

0 投票
1 回答
687 浏览

java - 添加“query.getResultList()”时编译器会发出警告

当我使用 query.getResultList() 时,编译器会发出警告。

我的代码是:

警告文字是:

1.开始“推断通用类型参数”重构

2.添加 SupressWarnings '取消选中'

但我不想使用 SupressWarnings 注释。

0 投票
2 回答
76 浏览

java - Will this if statement throw an exception or ignore it?

Will this code not evaluate the divide by zero portion of the if statement since the first part evaluates to false? If so, is this true for all cases in all Java IDEs? Or will certain compilers throw the exception?

0 投票
1 回答
55 浏览

java - 在运行中访问新编译的程序

我正在使用 ecj 进行遗传编程,并且我已经构建了它,因此它在运行后采用最适合的单个程序,并使用创建的 lisp 代码中的函数创建一个 java 类。

然后我让我的程序编译 java 文件。无论如何我可以在同一次运行中运行新编译的类文件吗?

我希望能够:

RunMain --> 创建 Java --> 编译类 --> 在新创建的类中调用函数 --> EndMainRun

到目前为止,我无法在新创建的类中调用该方法。

每次我创建新的 java 文件并编译时,它都会重写旧的。但是,每当稍后调用该类时,它都会运行旧函数 pre-overwrite。任何提示将不胜感激!

编辑:这里有一些非常基本的伪代码来展示我到目前为止所拥有的东西,其中很多都是抽象的。假设在我运行它之前已经有一个 MathFunction.class 文件。

旧函数返回值 -1,新函数应该返回 5,但它仍然返回 -1。即使我把这一切都放在一个循环中,它也会不断吐出 -1、-1、-1....

编辑2:

尽管功能完全不同,但我仍然让它返回相同的值。这是代码:

编辑3:

在这里在线找到了一个惊人的来源:http ://www.toptal.com/java/java-wizardry-101-a-guide-to-java-class-reloading

0 投票
1 回答
1293 浏览

java - 从 java 代码中运行已编译的 java .class 文件并捕获输出

我正在尝试编写一个带有接口的 java 程序,该接口允许用户创建 .java 文件并编译和运行它(本质上是一个非常简单的 IDE)。我正在为 gui 使用 java swing,并且到目前为止能够将接口内的 .java 文件编译成 .class 文件。我一直在研究如何从 java 代码中运行 .class 文件,但找到了很多我无法工作的答案。下面是编译的相关代码:

如何运行已编译的 .class 文件并在我的代码中捕获其输出?