Tag: 可执行文件jar

Kotlin代码编译为Jar用于Java Project?

我已经在Kotlin中编写了一个Java库,我想将它编译成Java和Kotlin应用程序可用的jar。 这个想法是,jar应该能够在Java项目和Kotlin项目上工作。 做一个简单的./gradlew clean assemble生成一个jar,当我检查jar时,我可以看到几个导入不包含在普通的Java应用程序也不能访问的jar中: import jet.runtime.typeinfo.JetValueParameter; import kotlin.jvm.internal.Intrinsics; import kotlin.jvm.internal.KotlinClass; import kotlin.jvm.internal.KotlinClass.Kind; import kotlin.jvm.internal.KotlinSyntheticClass; import kotlin.jvm.internal.KotlinSyntheticClass.Kind; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; 我怎么能包括在jar中的上述依赖项? 现在这个罐子只有30kb。 我宁愿不必包含整个Kotlin运行时,但只能在使用的组件中编译。

如何把项目的res文件放到同一个文件夹的jar文件中?

我有gradle问题。 我需要res文件夹中的位置与项目中的位置完全一样,以便以“unbuild”项目中相同的方式将可执行文件发送到资源。 我的项目文件树: Project +–src +–main |–kotlin +–res 在项目资源使用情况下,我按以下方式解决: var serviceAccount = FileInputStream("src/main/res/my_resource_file.json") 而且我需要在汇编保存在jar文件中的资源文件的项目位置 我的build.gradle文件: group 'Bot' version '1.0' buildscript { ext.kotlin_version = '1.1.2' repositories { mavenCentral() jcenter() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'kotlin' repositories { mavenCentral() } ext { jsoup = "1.10.2" //… firebase_admin = "5.0.0" } dependencies { compile […]

Gradle compileKotlin includeRuntime不向jar添加运行时

我有一个Kotlin Gradle项目,我想在jar文件中包含Kotlin的运行时和stdlib。 我目前正在使用它,但是当我使用build.gradle配置构建项目时,它不包括运行时或stdlib。 compileKotlin { kotlinOptions { includeRuntime = true noStdlib = false } } 这是我使用的包含运行时/ stdlib在jar中的Gradle代码,但它不像我所期望的那样工作。 以下是一些上下文的build.gradle文件: https : //github.com/BenWoodworth/CrossPlatformGreeter/blob/bd1da79f36e70e3d88ed871bc35502ecc3a852fb/build.gradle#L35-L43 Kotlin的Gradle文档似乎表明,将kotlinOptions.includeRuntime设置为true应该在生成的.jar文件中包含Kotlin运行时。 https://kotlinlang.org/docs/reference/using-gradle.html#attributes-specific-for-kotlin 编辑:这可能是相关的。 当我运行compileKotlin时,我得到了一些与运行时相关的警告: :compileKotlin w: Classpath entry points to a non-existent location: <no_path>\lib\kotlin-runtime.jar BUILD SUCCESSFUL

包在一个JAR中的Kotlin .kt类

如何构建HelloWorld.kt作为JAR以便运行? thufir@dur:~/kotlin$ thufir@dur:~/kotlin$ kotlinc HelloWorld.kt –include-runtime -d HelloWorld.jar error: invalid argument: –include-runtime info: use -help for more information thufir@dur:~/kotlin$ thufir@dur:~/kotlin$ thufir@dur:~/kotlin$ kotlinc HelloWorld.kt -d HelloWorld.jar WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.intellij.util.text.StringFactory to constructor java.lang.String(char[],boolean) WARNING: Please consider reporting this to the maintainers of com.intellij.util.text.StringFactory WARNING: Use –illegal-access=warn […]

Kotlin JSR-223在Fat jar中的ScriptEngineFactory – 找不到kotlin编译器jar

我有一个胖的jar,我试图获得Kotlin的ScriptEngine的实例。 为了调试的目的,我正在遍历可用的脚本引擎工厂并获取引擎。 val scriptEngineManager = ScriptEngineManager() for (factory in scriptEngineManager.engineFactories) { val scriptEngine = factory.scriptEngine } 当它击中Kotlin的引擎时,它会失败,除了以下例外: Exception in thread "main" java.io.FileNotFoundException: Cannot find kotlin compiler jar, set kotlin.compiler.jar property to proper location at org.jetbrains.kotlin.script.jsr223.KotlinJsr223ScriptEngineFactoryExamplesKt$kotlinCompilerJar$2.invoke(KotlinJsr223ScriptEngineFactoryExamples.kt:100) at org.jetbrains.kotlin.script.jsr223.KotlinJsr223ScriptEngineFactoryExamplesKt$kotlinCompilerJar$2.invoke(KotlinJsr223ScriptEngineFactoryExamples.kt) at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:130) at org.jetbrains.kotlin.script.jsr223.KotlinJsr223ScriptEngineFactoryExamplesKt.getKotlinCompilerJar(KotlinJsr223ScriptEngineFactoryExamples.kt) at org.jetbrains.kotlin.script.jsr223.KotlinJsr223ScriptEngineFactoryExamplesKt.access$getKotlinCompilerJar$p(KotlinJsr223ScriptEngineFactoryExamples.kt:1) at org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmDaemonLocalEvalScriptEngineFactory.getScriptEngine(KotlinJsr223ScriptEngineFactoryExamples.kt:56) at davidsiro.invoices.InvoiceGeneratorKt.generateInvoice(invoiceGenerator.kt:16) at davidsiro.invoices.MainKt.main(main.kt:11) 我的胖jar包含所有的依赖(虽然解压),包括Kotlin编译器。 我正在使用Maven Assembly Plugin来构建它,其配置如下: <plugin> <groupId>org.apache.maven.plugins</groupId> […]