小编Pre*_*rno的帖子

如何运行在内存中编译kotlin文件的测试并检查结果?

到目前为止我有

import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler

  MyProjectCompiler.initialize("SampleKtFileOutput")
    .packageName("com.test.sample")
    .compile(File(someFile.path))
    .result { ktSource: String -> K2JVMCompiler()
       .exec(System.out, /** arguments here?*/) }
Run Code Online (Sandbox Code Playgroud)

这会手动启动编译器,但我想从MyProjectCompiler内存中的第一个编译器(生成kotlin源)编译生成的String,并检查结果而不写入文件.

如果可能的话,我想在当前的类路径中包含所有内容.

java android jvm kotlin kotlinc

9
推荐指数
1
解决办法
1115
查看次数

是否可以在注释处理环境中获取包中的所有 TypeElement?

我的库中有几个包含注释和基类的包。我在这个问题的上下文中扩展了 javax.annotation.processing.AbstractProcessor 。

有没有办法获取包中声明的所有类型的 java.lang.TypeElement 的列表/数组/集合?甚至元素?

目前,我有一个解决方法,通过使用类型上的注释将类标记为组,该类型仅存在于表示库中的相关对象组。是否有更简单的方法按包(即位置)而不是显式声明将类型分组在一起?

java metaprogramming javac annotation-processing

6
推荐指数
1
解决办法
1192
查看次数

如何在 Gradle JAR 类路径构建脚本中包含 com.sun.tools JAR 并与我的 IDE 同步?

我需要 com.sun.tools jar 作为编译依赖项,所以我只是将它复制到我的 Intellij 项目中的 libs 文件夹中。但是,我正在尝试使用 gradle。我只需要它作为我的一个模块的依赖项。我该怎么做呢。我目前在我的模块 jar 任务中有这个:

jar {

    from('build/classes/main/')
    from('libs/tools.jar')

    manifest {
        attributes 'Manifest-Version': '1.0',
                'Class-Path': configurations.runtime.files.collect {"../lib/${it.name}" },
}
Run Code Online (Sandbox Code Playgroud)

我也在我的模块的“依赖项”闭包中尝试了这个:

 compile fileTree(dir: 'lib', include: '*.jar')
Run Code Online (Sandbox Code Playgroud)

我也只是尝试将 jar 放在我的整个项目类路径上,但它仍然没有编译:

    classpath ":tools"
Run Code Online (Sandbox Code Playgroud)

也许它是正确的,但我的 IDE 没有正确刷新?我已经有插件了

apply plugin: 'idea'
Run Code Online (Sandbox Code Playgroud)

在我尝试这样做之前,它一直运行良好。

编辑:它用于注释处理器,所以我试图将它包含在我的模块 jar 构建中,并且没有其他模块依赖它。有没有比复制 jar 更好的方法呢?

java intellij-idea gradle

6
推荐指数
1
解决办法
3028
查看次数

如何在 Intellij 中允许自动完成除 AWT 和 Swing 之外的所有内容?

AWT 和 Swing 对 JavaFX 中的所有内容具有几乎相同的名称,因此我发现自己按它们的包浏览项目,找到 FX 条目,然后查看文档。

我知道模块是可能的,但这是一个与其他所有内容捆绑在一起的核心 JDK 库

java ide javafx intellij-idea code-completion

3
推荐指数
1
解决办法
246
查看次数