command-line - 从命令行使用 jar 依赖项编译 Kotlin

标签 command-line compilation kotlin

我有一个混合了 Java 和 Kotlin 文件的项目。直到最近,我一直使用像这样的简单脚本从命令行成功编译它:

export CLASSPATH=java/main

# compile Kotlin files
find java/main/ -type d \
| xargs kotlinc-jvm -cp java/lib/google-collections-0.9.jar -d java/main/

# compile Java files
find java/main/ -name '*.java' | xargs javac

然后我开始使用 JGraphT 库,因此创建了对 jgrapht jar 的依赖。该库是从 Kotlin 文件中引用的。我仍然可以从 IntelliJ 编译我的项目,但无法使命令行脚本正常工作。

这是我尝试过的:

  1. 将 jar 添加到 CLASSPATH。不起作用。 Kotlin 编译器看不到它。它可能会忽略 CLASSPATH。

  2. 将 jar 添加为另一个 -cp 参数:

    找到 java/main/-type d\ | xargs kotlinc-jvm\ -cp java/lib/google-collections-0.9.jar\ java/lib/jgrapht-core-0.9.1.jar\ -d java/main/

然后我得到以下错误:

error: source entry is not a Kotlin file: java/lib/jgrapht-core-0.9.1.jar

我做错了什么?

这是一个业余爱好项目,主要是玩转Kotlin。这就是为什么我不使用任何构建系统,例如 Ant 或 Gradle。 (另一个原因是我对这些没有任何经验,而且它们看起来很可怕。:))

最佳答案

碰巧,我在发布问题后立即设法自己找到了问题。 -cp 参数的参数必须用冒号 (:) 分隔,而不是空格。以下工作正常:

find java/main/ -type d \
| xargs kotlinc-jvm \
    -cp java/lib/google-collections-0.9.jar:java/lib/jgrapht-core-0.9.1.jar \
    -d java/main/

关于command-line - 从命令行使用 jar 依赖项编译 Kotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35602445/

相关文章:

c# - 我可以使用命令行,还是从托管代码运行批处理文件? (。网)

css - 通过windows命令行批量编译SCSS文件为CSS

c++ - 使用 makefile 编译 C++ 11 程序的简单方法

android - Kotlin:isNullOrEmpty 与 TextUtils.isEmpty

c++ - 从命令行编译 wxWidgets

ruby - 通过命令行添加文件到redmine

command-line - 大于命令行中的值

visual-studio - 关于如何在 Visual Studio 中使用 sassy studio 进行编译的说明

android - 如何从 Android 导航 Controller 中的通知导航 Fragment

types - 如何将数据类型映射到该数据类型的集合