나는 Kotlin에 자바 병을 포함시키고 싶다. 나는 아래와 같이 시도했지만 오류가있었습니다.커틀린을 커맨드 라인과 함께 자바 병을 포함하도록 컴파일하는 방법은 무엇입니까?
javac -encoding utf-8 javasorce/test/JavaTestClass.java
jar cvf javasorce/test/JavaTestClass.jar javasorce/test/JavaTestClass.class
kotlinc kotlin/CallJavaTestClass.kt -cp javasorce/test/JavaTestClass.jar -include-runtime -d kotlin/CallJavaTestClass.jar
java -jar kotlin/CallJavaTestClass.jar
오류 : 나는 디렉토리 아래처럼 사용하고
Exception in thread "main" java.lang.NoClassDefFoundError:
javasorce/test/JavaTestClass at CallJavaTestClassKt.main(CallJavaTestClass.kt:5)
Caused by: java.lang.ClassNotFoundException: javasorce.test.JavaTestClass
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
: 솔루션이있는 경우
root
|-javasorce
| |-test
| |-JavaTestClass.java
|-kotlin
|-CallJavaTestClass.kt
말해주십시오.
감사를 당신에게, 내가 해결! 귀하의 대답은 매우 이해하기 쉽습니다! 답변의 대부분은 정확했지만 한 가지 실수가 있습니다. 응용 프로그램을 실행하는 올바른 방법은'java CallJavaTestClassKt -cp kotlin/CallJavaTestClass.jar : javasorce/test/JavaTestClass.jar'가 아니라'java -cp kotlin/CallJavaTestClass.jar : javasorce/test/JavaTestClass.jar CallJavaTestClassKt'입니다. 귀하의 제안에서, 'java'는 CallJavaTestClassKt를 찾을 수 없습니다. – naokichi