Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用命令行kotlin编译器kotlinc导入com.google.*_Kotlin_Import_Command Line Interface_Classpath_Kotlinc - Fatal编程技术网

如何使用命令行kotlin编译器kotlinc导入com.google.*

如何使用命令行kotlin编译器kotlinc导入com.google.*,kotlin,import,command-line-interface,classpath,kotlinc,Kotlin,Import,Command Line Interface,Classpath,Kotlinc,源代码(独立) import com.google.gson.gson 导入com.google.gson.GsonBuilder 类LocationReport(变量dateTimeStamp:String, 变量纬度:双精度,变量经度:双精度) { } 趣味主线(args:Array){ val gson=gson() val gsonPretty=GsonBuilder().setPrettyPrinting().create() val报告=位置报告(“2020年5月24日太平洋标准时间

源代码(独立)

import com.google.gson.gson
导入com.google.gson.GsonBuilder
类LocationReport(变量dateTimeStamp:String,
变量纬度:双精度,变量经度:双精度)
{
}
趣味主线(args:Array){
val gson=gson()
val gsonPretty=GsonBuilder().setPrettyPrinting().create()
val报告=位置报告(“2020年5月24日太平洋标准时间上午8:15”,37.422,-122.084)
val jsonReport:String=gson.toJson(报告)
println(jsonReport)
val jsonReportPretty:String=gsonPretty.toJson(报告)
println(jsonReportPretty)
}
当我试图用kotlinc编译时,它失败了,出现了“错误:未解析的引用:google”。没有对Gson和相关构造的引用,程序可以编译,.jar文件可以运行而不会发生意外。但我当然无法获得JSON功能


当我尝试创建一个gradle项目时,我最终成功地完成了构建,但是当我尝试运行生成的.jar文件时,我在该.jar文件中得到了“无主清单属性”

我确实搜索了“没有主清单属性,但没有成功。尤其是,这对我不起作用

如果有一个明显的答案,或者如果我没有遵循正确的协议,我会感到遗憾。我已经为此工作了几个小时,并尝试了几种不同的方法,但都没有成功。我真的很想在Android Studio之外运行该程序

谢谢你的考虑

更新:感谢用户指出我需要下载一个Gson.jar文件

现在的问题是kotlin编译器kotlinc似乎无法识别环境变量CLASSPATH的值。通过使用-cp选项,我可以让kotlinc找到该Gson jar,但通过生成的.jar文件,java无法找到该Gson jar,无论是命令行上的-cp还是配置为定位Gson jar的CLASSPATH

定位Gson jar与java一起工作。我发现一个简单的java程序引用Gson。javac(编译器)和java都通过CLASSPATH变量定位相同的Gson jar

那么,为什么kotlinc不能创建一个jar,以便java运行时能够定位Gson jar呢?我真的很想在Android Studio之外实现这一点。从命令行完成初始验证和调试要容易得多。请注意,我的原始程序打印了两个不同的JSON字符串。Android Studio也可以,但是从我初学者的角度来看,这更难


再次感谢您的阅读。请原谅任何违反stackoverflow协议的行为。

您必须下载用于gson的模块或克隆并构建自己,之后您可以在编译提示时将其添加到类路径中,但我仍然没有取得进展。我尝试使用该GitHub存储库,但未能成功让gradlew开始工作。因此,我下载了相应的jar文件gson-2.6.2.jar。我可以让我的程序用-cp编译以指向该jar文件。但是我无法让jar文件运行,尽管用-cp命令行再次将java指向同一jar文件。我得到了ClassNotFoundException。关于stackoverflow的遗憾回答对我来说不起作用对于后一个问题,我很抱歉有这样的基本问题,但我来自C/C++。我希望这能在Android Studio之外工作!再次感谢您的提示,我很抱歉我对Java/kotlin/gradle的了解太少。我相信在那种环境中工作过的人会知道该怎么做。”当我尝试创建gradle项目时,我最终成功地完成了构建,但是当我尝试运行生成的.jar文件时,我在该.jar文件中得到了“没有主清单属性”。“然后我建议您:1.阅读并查看它是否有帮助(在添加依赖项之后);2.如果没有,请询问这一点,提供您的
build.gradle
文件。您必须下载用于gson的模块或克隆并自行构建,之后您可以在编译技巧手册时将其添加到类路径中,但我仍然没有取得进展。我尝试使用该GitHub存储库,但无法获得gradlew开始工作。所以我下载了相应的jar文件gson-2.6.2.jar。我可以让我的程序用-cp编译以指向那个jar文件。但是我无法让jar文件运行,尽管用-cp命令行再次将java指向同一个jar文件。我得到了ClassNotFoundException。关于stackoverflow的遗憾回答对我来说不适用于t这是后一个问题。我很抱歉有这样的基本问题,但我来自C/C++。我希望这能在Android Studio之外工作!再次感谢你的建议,我很抱歉我对Java/kotlin/gradle的了解太少。我相信在那种环境中工作过的人会知道该怎么做。”当我尝试创建gradle项目时,我最终使构建成功,但当我尝试运行生成的.jar文件时,我在该.jar文件中得到了“没有主清单属性”。然后我建议您:1.阅读并查看它是否有帮助(在添加依赖项之后);2.如果没有,请询问这一点,提供您的
build.gradle
文件。
import com.google.gson.Gson
import com.google.gson.GsonBuilder

class LocationReport(var dateTimeStamp : String,
                     var latitude : Double, var longitude : Double)
{
}

fun main(args: Array<String>) {
    val gson = Gson()
    val gsonPretty = GsonBuilder().setPrettyPrinting().create()

    val report = LocationReport("24-May-2020 8:15 AM PDT", 37.422, -122.084)

    val jsonReport: String = gson.toJson(report)
    println(jsonReport)

    val jsonReportPretty: String = gsonPretty.toJson(report)
    println(jsonReportPretty)
}