Tag: 编译

Maven:从构建中排除测试

我有一些我在项目的src / test / java文件夹中用作测试的类。 当我使用标准的maven编译插件运行maven时。 这些项目被编译成.class文件,并包含在打包编译代码的jar中。 我为自己创建了这些测试,以便在运行maven和构建我的版本之前在eclipse中运行。 它们只是完整性测试,不应包含在构建中。 我宁愿不把它们放在一个单独的项目中,因为对我来说,它们在这里是有道理的。 我怎么能告诉maven我不希望它编译/包含该目录中的文件? 我相信maven编译器插件生成jar如下: maven-compiler-plugin 1.6 1.6

Intellij – 将默认输出路径设置为gradle输出

因此,我创建了一个新的gradle项目,选择Java作为“附加库和框架”。 Gradle将编译为.\build\classes并维护包结构, 但项目结构中的“模块编译输出路径” – >模块设置为.\out\production\classes 。 这真的很烦人,而不是我想记住每次创建新Java项目时都要改变的东西。 我可以以某种方式更改默认值,以便它与gradle输出路径匹配吗?

IntelliJ 2018.1首选项中的“使用’ – release’选项”是什么?

在IntelliJ 2018.1(构建,执行,部署>编译器> Java编译器)的首选项中,有一个标记为的复选框: 使用’–release’选项进行交叉编译(Java 9及更高版本) 我在网上搜索时找到了相关信息。 “?” 单击帮助图标时出现404错误。 这个选项的目的/function是什么?

不同的JDK更新是否会生成不同的Java字节代码?

假设情景: 我有一个项目的源合规级别指定为1.5。 现在我用两个不同的JDK编译这个项目:首先使用JDK 6 Update 7,然后使用JDK 6 Update 20。 这两个不同的JDK是否会生成不同的Java字节代码,尽管它们的Update版本只有不同?

为什么Java编译器有时允许取消装箱为空?

例如: int anInt = null; 在编译时失败但是 public static void main(String[] args) { for (int i = 0; i < 10; i++) { System.out.println("" + getSomeVal()); } } public static int getSomeVal() { return new Random().nextBoolean() ? 1 : null; } 在运行时(通常)失败。 试图返回null也会导致编译错误,所以我假设有多个路径会导致编译器推断出null可能是一个自动装箱的int ? 为什么javac能够以相同的错误编译这两种情况?

在Eclipse中重新构建已删除的类文件

我不小心删除了我的项目中的.class(Java字节码)文件(在文件系统上,而不是使用Eclipse本身)。 容易修复,对吧? 只需重新构建它。 但这不起作用! 即使我从“项目”菜单中选择“构建项目”或“全部构建”或“自动构建”,文件系统上也没有实际发生任何事情,我仍然得到: Exception in thread “main” java.lang.NoClassDefFoundError 我只想从我已有的源代码重新编译它! 顺便说一下,当我从“Project”菜单中选择“Clean …”时,Eclipse也不会删除任何文件。 我也尝试将项目重新导入到不同的文件夹中,但Eclipse只复制所有.class文件,问题仍然存在。

Google App Engine如何预编译Java?

App Engine使用“预编译”过程和应用程序的Java字节码来增强Java运行时环境中应用程序的性能。 预编译代码的function与原始字节码相同。 有什么详细信息吗?

Eclipse不会编译/运行java文件

我只是想编译并运行一个简单的java程序。 当我去运行我的测试器类时,它会选择要运行的内容,它会给我Ant Build,当突出显示“使用默认设置启动Ant构建”或Ant Build时,它会显示“启动Ant构建并允许它配置“。 当我尝试选择其中任何一个时,它会提示Build失败。 原因:无法找到要运行的ant文件。 老实说,我不知道这些ant构建和文件是什么。 这绝对是一个愚蠢的问题,但不知道该怎么做。

玩框架。 无需编译

我被介绍到Play框架,我发现它的一个惊人的事情是没有必要编译项目。 您只需保存已编辑的文件并重新加载网页即可。 我被告知Java源代码被编译为字节码然后用JIT编译器编译,那么Play框架内部的魔力是什么?

在运行时从Java编译和使用Groovy类?

我有一个应用程序,我希望通过让用户在Groovy中定义类,最终实现一些接口来实现可扩展性。 关键方面是应该在运行时解释/编译它。 即我需要我的应用程序来获取.groovy并编译它。 在启动过程中这样做是可以的。 然后,当然,我的应用程序应该能够实例化该类。 我看到两个解决方案: 1)在应用程序运行时编译,将类放在类路径上的某个地方,然后加载类,假装它们始终存在。 2)一些更聪明的方法 – 调用编译器API和一些类加载魔法让我的系统类加载器看到它们。 我如何选择2)? 还有其他想法吗?