ClassNotFoundException при запуске jar-файла, скомпилированного с помощью внешних библиотек (Kotlin с JVM)JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 ClassNotFoundException при запуске jar-файла, скомпилированного с помощью внешних библиотек (Kotlin с JVM)

Сообщение Anonymous »

Вот мой шаг для воспроизведения проблемы:
com/example/Library.kt

Код: Выделить всё

package com.example

class Library {
fun getValue(): Int {
return 123
}
}
MyCode.kt

Код: Выделить всё

import com.example.Library

fun main() {
println("Hello World")
println(Library().getValue())
}
Я могу скомпилировать оба файла с помощью приведенной ниже команды без каких-либо ошибок:

Код: Выделить всё

kotlinc com/example/Library.kt -d Library.jar
kotlinc -cp Library.jar MyCode.kt -d MyCode.jar
Структура файла после компиляции:

Код: Выделить всё

$ tree
.
├── Library.jar
├── MyCode.jar
├── MyCode.kt
└── com
└── example
└── Library.kt
Однако я не могу выполнить MyCode.jar

Код: Выделить всё

$ java -cp Library.jar -jar MyCode.jar
Hello world
Exception in thread "main" java.lang.NoClassDefFoundError: com/example/Library
at MyCodeKt.main(MyCode.kt:5)
at MyCodeKt.main(MyCode.kt)
Caused by: java.lang.ClassNotFoundException: com.example.Library
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
... 2 more
Ни один из них не работает при использовании Kotlin вместо Java:

Код: Выделить всё

$ kotlin -cp Library.jar MyCode.jar
Hello world
Exception in thread "main" java.lang.NoClassDefFoundError: com/example/Library
at MyCodeKt.main(MyCode.kt:5)
at MyCodeKt.main(MyCode.kt)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.jetbrains.kotlin.runner.AbstractRunner.run(runners.kt:70)
at org.jetbrains.kotlin.runner.Main.run(Main.kt:194)
at org.jetbrains.kotlin.runner.Main.main(Main.kt:204)
Caused by: java.lang.ClassNotFoundException: com.example.Library
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
... 7 more
Может кто-нибудь сказать мне, в чем здесь проблема?

(Maven / Gradle не вариант, я пытаюсь создать быстрый инструмент для компиляции пользователей 'коды)

Подробнее здесь: https://stackoverflow.com/questions/790 ... nal-librar
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»