问题标签 [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 投票
0 回答
257 浏览

java - 生成没有依赖关系的jar

我正在使用 jdk 系统编译器在 java 程序中生成一个 jar。

我有一些添加到 jar 中的类文件:

我有一些依赖项添加到清单中:

现在 jar 在子文件夹 lib 中查找依赖项。

jar 本身不应是可运行的独立 jar。我想将 jar 包含在已经存在所有依赖项的项目中。

那么我该怎么做,以某种方式生成 jar,让给 jvm 的类路径参数本身将处理依赖关系?(想要的解决方案)

是否有可能或者我必须创建清单以使其指向 MyApp/dependencies 文件夹?(不想要的解决方案)

0 投票
2 回答
5670 浏览

gradle - Gradle增量java编译导致完全重新编译

我只更改了一个源文件并重新启动构建:

我的 gradle 配置有:

我希望 Gradle 只重新编译 XXX.java,这不是应该做的吗?

0 投票
1 回答
911 浏览

java - 无论如何告诉编译器通过注释保留变量名?

让整个应用程序为每个变量名添加一个带有变量名的@Param() 注释是非常烦人的。当您更改变量名称并且必须在@Param 中更改名称时,这也令人沮丧

有没有什么好的方法来注释方法,以便编译器知道保留变量名的元信息?

我注意到在 eclipse 编译器中,我得到了 arg0、arg1,当我逐步执行我的代码时,它处于调试模式。如何设置它以便实际的变量名称通过?

最后,我对 Play 1.3 处理这个问题的方式达到了顶峰,它使用了 javassist 和字节码的东西(我更愿意将其排除在应用程序之外),但仍然不确定它是如何工作的。有谁知道我怎么能那样做(学习比什么都重要)

谢谢,院长

0 投票
0 回答
389 浏览

java - 以编程方式编译带有依赖项的 java src

我正在尝试编写一个程序,人们可以在其中上传他们的 Othello IA 的 src 代码并相互对战。所以我得到了一个带有 .java src 代码的 jar 文件,我想编译并上传到我的数据库。

我一直在使用 javax.tools.JavaCompiler 但是当他们使用多个包时它似乎不起作用。

这是我的代码示例:

如果我的 toTest.jar 文件直接包含包而不是所有 .java 文件,则不会编译。

我看过 Java programmatically compile jar How to set classpath when I use javax.tools.JavaCompiler compile source? 以及此处的示例:http: //www.programcreek.com/java-api-examples/index.php?api=javax.tools.JavaCompiler

但我似乎找不到解决方案..

或者,如果可以在不解包和保存 jar 文件的情况下直接使用我保存文件的数据库中的比特流来完成此操作,那就太好了。

我对编程很陌生,所以我为我丑陋的代码道歉。我将不胜感激任何帮助或指示!

编辑:

从我所看到的 javac 认为我在错误的目录中并且在编译时找不到主类。因此,我需要将我的类路径变量设置为我当前正在处理的文件。但是,在我尝试过的所有方法中,他甚至都找不到 .java 文件了。

0 投票
1 回答
295 浏览

java - JavaCompiler API - 在 tomcat 中运行时编译缓慢

我的应用程序在运行时生成 java 代码并使用 JavaCompiler API 对其进行编译。一些生成的文件可能相当大 - 多达几十万行。我发现当我在javac命令行中对生成的代码运行命令时,或者如果我使用仅通过 JavaCompiler API 进行编译的应用程序,我可以编译其中的许多文件(~500),即使它们是非常大,不到两分钟。但是,如果我通过我的应用程序在 Tomcat 服务器上运行时调用 API,编译时间会超过 12 分钟(!!!)。

对于如何提高编译性能的任何建议,我将不胜感激。

谢谢!

0 投票
1 回答
453 浏览

java - java编译器如何检查接口中的所有方法是否都实现了?

如果我声明我的对象实现了一个接口,但未能实现这些方法,那么当我编译我的代码时,我会得到一个编译器错误。java编译器怎么知道我没有实现一个接口的所有方法?

0 投票
2 回答
381 浏览

java - 为什么 Java 枚举比接口使用更多内存?

我测试了class、enum、interface这3种封装常量String的方式。

编译后,它们生成了 330 字节、181 字节和 818 字节的字节码,这意味着接口 ICompany 在加载到 jvm 时将占用更少的内存。为什么是这样?

0 投票
0 回答
181 浏览

java - 动态类编译器类加载器抛出 NullpointerException

我是加载类的新手,所以如果有任何问题请帮助我。

线程“main”中的异常 java.lang.ClassNotFoundException:Hello at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

0 投票
2 回答
1172 浏览

java - 如何获取 JavaCompiler 编译任务生成的类文件列表?

我正在尝试使用 javaCompiler 动态编译 java 代码。代码工作 gr8 但是我需要获取 CompilationTask 创建的类文件列表。这是源代码:

如何获取上述代码生成的类列表,包括内部类。任何帮助将非常感激。

0 投票
2 回答
1138 浏览

node.js - 在线java编码测试:在nodejs中编译提交的java代码

我正在使用 MEAN 堆栈进行在线编码测试应用程序。在nodejs中寻找解决方案,编译用户在编辑器中输入并提交的Java代码。用户可以输入测试输入,运行并检查输出。

我使用 exec 方法遇到了以下解决方案,

但是这个解决方案听起来并不可行,因为它涉及在编译之前从用户提交的 java 代码中创建 jar 文件。

这个问题有更好的解决方案吗?