首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在编译一个kotlin程序到java jar之后转义bash中的*乘法符号,该jar获取args[0]并在控制台中打印它?

在编译一个Kotlin程序到Java JAR之后,转义Bash中的*乘法符号,可以通过在Kotlin代码中使用反斜杠进行转义。具体步骤如下:

  1. 在Kotlin代码中,将乘法符号*转义为*。这样可以确保在Bash中正确解析乘法符号。

示例代码如下:

代码语言:txt
复制
fun main(args: Array<String>) {
    val input = args[0].replace("*", "\\*")
    println(input)
}
  1. 编译Kotlin代码为Java字节码,并生成JAR文件。可以使用Kotlin编译器(kotlinc)来完成此操作。

命令示例:

代码语言:txt
复制
kotlinc MyProgram.kt -include-runtime -d MyProgram.jar

其中,MyProgram.kt是你的Kotlin源代码文件,MyProgram.jar是生成的JAR文件名。

  1. 在Bash中运行生成的JAR文件,并传递参数。确保在参数中使用引号将包含乘法符号的字符串括起来,以避免Bash解析乘法符号。

命令示例:

代码语言:txt
复制
java -jar MyProgram.jar "2 * 3"

其中,MyProgram.jar是生成的JAR文件名,"2 * 3"是包含乘法符号的参数。

  1. 运行上述命令后,程序将获取args[0]的值,并在控制台中打印出来。乘法符号将被正确解析并打印出来。

注意:以上步骤中,并没有提及具体的腾讯云产品和链接地址,因为在这个问题中并没有涉及到与云计算相关的内容。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

《Kotin 极简教程》第16章 使用 Kotlin Native第16章 使用 Kotlin Native《Kotlin极简教程》正式上架:

16.1.3 解释型语言与编译型语言 编译型语言,是在程序执行之前有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。例如,C/C++ 等都是编译型语言。...虽然Java程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间语言)。在运行的时候,由JVM将字节码再翻译成机器语言。...构建完成之后,会在build/konan/bin/目录下面生成一个KotlinorApp.kexe可执行程序,它直接在 Mac OS 上运行,不再依赖JVM 环境了。...[@]}" 我们可以看出,Kotlin Native 编译器 konan 的运行环境还是在 JVM 上,但是它生成的机器码的可执行程序是直接运行在对应的平台系统上(直接编译成机器语言)。...MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时(C Runtime)库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95发行版以上的

1.3K30

《Kotlin极简教程》第1章 Kotlin简介

认识一个事物的最好的方式,首先是取了解它的历史。...Kotlin的编译器kompiler可以被独立出来并嵌入到 Maven、Ant 或 Gradle 工具链中。这使得在 IDE 中开发的代码能够利用已有的机制来构建,可以在新环境中自由使用。...在if逻辑代码中: if [ -n "$KOTLIN_RUNNER" ]; then java_args=("${java_args[@]}" "-Dkotlin.home=${KOTLIN_HOME...我们下面简单介绍一下在Eclipse中开发Kotlin程序的方法。 首先,打开Help > Eclipse Marketplace, 如下图 ?...如果还有精力,我们再去学习语言更底层的东西,而不仅仅停留在应用层面。如Java中的集合类实现的算法与数据结构,如JVM是如何执行Java代码的。如Java的线程和操作系统线程的关系。

1K20
  • Kotlin极简教程(第一章 Kotlin简介)

    Kotlin的编译器kompiler可以被独立出来并嵌入到 Maven、Ant 或 Gradle 工具链中。这使得在 IDE 中开发的代码能够利用已有的机制来构建,可以在新环境中自由使用。...在if逻辑代码中: if [ -n "$KOTLIN_RUNNER" ]; then java_args=("${java_args[@]}" "-Dkotlin.home=${KOTLIN_HOME...我们观察IDEA控制台输出的执行日志,可以看出IDEA集成Kotlin环境使用的核心依赖jar包: /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents...Process finished with exit code 0 1.2.4 使用Eclipse 使用Eclipse的开发者们,可以通过安装Kotlin插件来进行Kotlin程序的开发。...这个配置是在.classpath, .project 配置的。当然这些配置依赖库,执行程序等等的工作是由Eclipse Kotlin插件完成的。

    2.1K70

    《Kotlin 程序设计》第二章 快速开始:HelloWorld

    比如说kotlinc这个程序,我们知道,Kotlin基于Java虚拟机(JVM),通过Kotlinc编译器生成的JVM字节码与Java编译的字节码基本相同,也因此与Java可以完全兼容,并且语法更加简洁...谷歌称还将与JetBrains公司合作,为Kotlin设立一个非盈利基金会。 JetBrains在2010年首次推出Kotlin编程语言,并在次年将之开源。...下一版的AndroidStudio(3.0)也将提供支持。 下面我们简要介绍如何在Android上开始一个Kotlin的HelloWorld程序。 对于我们程序员来说,我们正处于一个美好的时代。...然后选择『Browse repositories』,在搜索框中搜索Kotlin,结果列表中的『Kotlin』插件,如下图 ? 点击安装,安装完成之后,重启Android Studio。...在Java代码转换成Kotlin代码之后,打开MainActivity.kt文件,编译器会提示"Kotlin not configured",点击一下Configure按钮,IDEA就会自动帮我们把配置文件写好了

    89010

    万字长文带你APK反编译&重签名&aab&apks转换

    这通常用于理解程序的工作原理,进行软件审计,恢复丢失的源代码,或者进行教学研究。反编译的难度和效果取决于原程序的编译过程中丢失了多少信息(比如变量名、注释等)。...由于Android应用的这一特性,反编译Android应用通常涉及到多个步骤,包括反编译APK文件以获取其DEX(Dalvik Executable)文件,然后将DEX文件转换为Java源代码。...jadx 安装包地址:https://github.com/skylot/jadx/releases 功能:一个命令行和图形用户界面应用程序,可以将DEX文件直接反编译成Java源代码,无需先转换为JAR...随便创建一个空文件项目 如何查看反编译内容 在上一步中,我们创建好了一个空项目,这个时候只要拖着我们的apk直接丢到这个项目右侧的黑不拉几的位置就可以了。...反编译 APK 反编译APK文件: apktool d [apk文件路径] 这条命令会将APK文件反编译到一个目录中,目录名默认为APK文件的文件名。

    1.5K20

    shell-编写shell脚本所需的基础语法

    总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制。...shell脚本就是由Shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。...获取脚本文件所在的目录 path=$(cd `dirname $0`;pwd) : 获取脚本当前所在目录,并且执行cd命令到达该目录,使用pwd获取路径并赋值到path变量 算术运算 $[...[[ ]]中增加模式匹配特效; (( ))不需要再将表达式里面的大小于符号转义,除了可以使用标准的数学运算符外,还增加了以下符号 ?...仅在格式字符串中有效 \0ddd :表示1到3位的八进制值字符 ---- 流程控制 和Java、PHP等语言不一样,sh的流程控制不可为空,即if或者else的大括号中无任何语句 if else if

    89920

    35分钟教你学dart(第二节)

    在变量之后添加该调用: print(myAge); // 35 在 DartPad 中单击RUN以运行代码。您将在控制台中看到变量的值35。...'; print(quote); // 如果你不能简单地解释它 // 你还不够了解。 此示例使用单引号,因此它需要一个转义序列 ,\'将can't和don't的撇号嵌入到字符串中。...单击DartPad 中的RUN以在控制台中查看所有字符串。 Dart 字符串数据类型 不变性 Dart 使用关键字const和final不改变的值。 使用const对于那些在编译时已知值。...Functions 函数使您可以将多行相关代码打包到一个主体中。然后调用该函数以避免在整个 Dart 应用程序中重复这些代码行。....map 获取所有列表值并返回一个带有它们的新集合。 匿名函数作为参数传递。在该匿名函数中,您有一个drink表示列表中每个元素的参数。 匿名函数的主体将每个元素转换为大写并返回值。

    13.1K30

    Kotlin 1.2 新特性

    在Kotlin 1.1中,团队正式发布了JavaScript目标,允许开发者将Kotlin代码编译为JS并在浏览器中运行。...跨平台 跨平台项目是 Kotlin 1.2 中的一个新的实验性功能,它允许开发者从相同的代码库构建应用程序的多个层——后端、前端和Android应用程序,在这个跨平台方案中,主要包含三个模块。...请注意,目前跨平台项目只是一个实验性功能,这意味着该功能已经可以使用,但可能需要在后续版本中更改设计 编译性能 在1.2的开发过程中,团队花了很多精力来优化编译系统,据官方提供的资料显示,与Kotlin...标准库 Kotlin标准库与拆分包 Kotlin标准库现在完全兼容Java 9模块系统,该系统禁止拆分包(多个jar文件在同一个包中声明类)。...内联扩展空修复 在以前的版本中,在平台类型的空值上调用的内联扩展函数没有检查接收器是否为null,并因此允许null转义到其他代码中。

    1.7K100

    Kotlin学习(三)——基本类型,包,控制流:if、when、for、while,Break和continue

    ,而我们一般的写法也和JAVA类似 同时,Kotlin上有一个下划线的定义,可以让代码的可读性更加的强,我们来看下 这段代码输出的数字 下划线并不像JAVA一样会影响我们的代码,而是让我们的代码可读性变得更强...并且在JAVA平台中,== 和 === 的概念 就跟我们JAVA中 == 和eques类似 这段代码中,我们可以看到,我们定义了一个Inta,又定义了两个可空Int 赋值 a,结果算出===false...,但是如果我们 改成== ,那就是值相等了,===是地址相同,很明显,我们是两个不同的变量,所以false 另外,在Kotlin中,小类型也不是大类型的子类,所以不存在强转的概念 比如这种错误的示范 这就隐式转换...我们来写一段演示的示例 再来看下Char,Char不能作为一个单独的字符或数字存在,需要‘’单引号声明,比如 我们再来看下如何定义一个数组 listOf直接声明,arrayOfNulls声明一个长度固定的空数组...、while 1.if表达式 在kotlin中,if的用法不局限于判断,他还会有返回,所以我们的写法也很多,比如 2.When表达式 但是我们一般是需要else结尾的,而且我们可以用in来表达 当然

    1.6K100

    J 神提问:除以 2 还是右移 1 ?

    类库中的一些数据结构使用基于数组实现的二叉树来存储元素。在 Java 代码中有许多地方使用 移位操作 来代替二次幂的乘除法。...这里没有进行任何优化,但是如果你对 java 有所了解的话,也不会感到意外。javac 并不是一个会进行优化的编译器,而是把大部分工作留给了 JVM 上的运行时编译器或者 AOT 。...ART 识别到了这两个方法具有一样的方法体,并在编译成 x86 汇编代码时进行了去重操作。...在 Android 10 Pixel4 的设备上执行相同的指令,来看看 ART 是如何将代码编译成 ARM 汇编代码的。...Kotlin 提供了无符号类型 UInt ,它提供了一样的功能,但和 Java 不一样的是,它独立抽象为一个数据类型。可以想象到的是,二次幂的除法肯定可以用右移操作重写。

    1.2K20

    如何使用 IDEA 创建 Java 入门应用

    1前言 本篇文章中,我们将学习如何使用 IDEA 来创建、运行并打包我们的第一个 Hello World! Java 程序。...通过阅读该教程,希望大家能对如何使用 IDEA 来创建、运行并打包 Java 程序有一个简单的了解,熟悉一下 IDEA 的一些简单使用技巧,去感受 IDEA 为我们开发者所带来的便利,接下来我们就来具体看看具体的创建...; } } 4编译并运行项目 代码写好之后,我们先编译下代码,选择工具栏中的编译按钮(也可以使用快捷键 Ctrl + F9),项目就会自动进行编译。...6运行 JAR 应用 既然我们把项目打包了,那这个时候我们就不需要再在 IDEA 中就能运行我们的项目。找到我们打包好的 HelloWorld.jar,然后在控制台中运行如下命令即可。...7总结 今天的内容就到此结束了,本文主要讲了如何利用 IDEA 来创建、编译、运行、打包我们的 Java 项目。如果你有更多关于 IDEA 使用的小技巧,欢迎在评论区留言。

    1.4K20

    Linux系统sh脚本编写

    一、开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh或者#!/bin/bash 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。...在这个例子中我们使用/bin/sh来执行程序。 当编写脚本完成时,如果要执行该脚本,还必须使其可执行。 要使编写脚本可执行: 编译 chmod +x filename 这样才能用...../123.sh) 二、注释 在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。 三、变量 在shell编程中,所有的变量都由字符串组成,并且不需要对变量进行声明。...五、Shell命令和流程控制 a,打印信息 echo “哈哈哈”: 将文字内容打印在屏幕上 更多解释详情,请访问:http://tsov.net/sh-script-syntax/ 六、简单的脚本...echo "Startup project $project" #项目启动需要执行的命令 nohup java -jar /home/jar/jarweb.jar > nohup.out 2>&1

    8K10

    Java 应用容器化最佳实践

    如果只需要运行 Java 程序比如一个 jar 包, 那么 JRE 足以; 但是如果期望在运行时捕获一些信息进行调试, 那么应该选择 JDK....-${VERSION}-SNAPSHOT.jar Bash-c 方式 除了直接执行和 exec 方式其实还有一个我称之为 “不稳定” 的解决方案, 就是使用 bash -c 来执行命令; 在使用 bash...bash 上: 当使用 bash 启动脚本后, bash 会 fork 一个新的子进程; 而不管是 tini 还是 dump-init 的转发逻辑都是将信号传递到进程组; 只要进程组中的父进程响应了信号...众所周知, Java 是有虚拟机的, Java 代码被编译成 Class 文件然后在 JVM 中运行; JVM 默认会根据操作系统环境来自动设置堆内存(HeapSize), 而容器化 Java 应用面临的挑战其一就是如何让..., 而不论哪样只要使用了域名就会涉及到 DNS 缓存问题; Java 的 DNS 缓存是由 JVM 控制的, 不要理所当然的以为 JVM DNS 缓存非常友好, 某些时候 DNS 缓存可能超出预期.

    2.1K30

    【小家运维】达到Linux第三阶段的常用命令笔记记录—Part Ⅲ

    当然还包括我们的Java Web服务,它的线程需要一直运行着~~~ 为何关闭窗口/断开链接,正在运行的程序会死掉?...当终端接口检测到网络连接断开时,会给给控制进程(会话期首进程)发送一个挂断信号(终止程序的信号) 如果会话期首进程终止,则该信号发送到该会话期前台进程组,从而导致进程的停止 因此当网络断开或终端窗口关闭后...概念说明:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用nohup 命令运行后台中的程序。...要运行后台中的 nohup 命令,添加 & ( 表示”and”的符号)到命令的尾部。...export是**将一个变量导出**,以给其他shell程序使用,能影响子shell(不用export定义的变量只对该shell有效,对子shell也是无效的) 直接执行一个脚本文件是在一个子shell

    1.9K20

    Kotlin Native实战开发

    ,它主要包含一个基于LLVM的后端编译器的和一个Kotlin本地运行时库。...所谓编译型语言,是指使用专门的编译器、针对特定平台/操作系统将某种高级语言源代码一次性编译成该平台硬件能够执行的机器码,编译生成的可执行程序可以脱离开发环境,在特定的平台上独立运行。..." "${konan_args[@]}" 可以发现,Kotlin Native编译器konan的运行环境还是需要JVM环境支持的,但是它生成的机器码的可执行程序是不需要JVM环境支持的,可以直接运行在对应的平台系统上...而kotlinor.def是Kotlin Native与C 语言互操作的配置文件,可以在kotlinor.def里面配置C源码到Kotlin的映射关系,该配置文件的内容如下。...Kotlin Native时,需要先把编译器/bin目录加入系统的path环境中,然后再执行make命令,编译完成之后就可以在项目的build/kotliner目录中找到kotliner.kexe

    1.3K20

    Android 逆向之 smali

    ,p0不一定是函数中的第一个参数: 在非static函数中,p0代指“this”,p1表示函数的第一个参数,p2代表函数中的第二个参数… 在static函数中p0才对应第一个参数(因为Java的static...中的一个private函数,如果修改smali时错用invoke-virtual或invoke-static将在回编译后程序运行时引发一个常见的VerifyError invoke-virtual: 用于调用....line 279 return-void .end method 另外注意到.line这个标识,它是标注了该代码在原Java文件中的行数,Dalvik VM运行到.line XX时就将这个值存起来...Huang 教授提出的,它是在保证被测程序原有逻辑完整性的基础上在程序中插入一些探针(又称为“探测仪”),通过探针的执行并抛出程序运行的特征数据,通过对这些数据的分析,可以获得程序的控制流和数据流信息,...比较好的方法是:把想要增加的逻辑先用java写成一个apk,然后把这个apk反编译成smali文件,随后把反编译后的这部分逻辑的smali文件插入到目标程序的smali文件夹中,然后再在原来的方法上采用

    2K31

    Kotlin 1.2 的新增了哪些特性?

    下面是一个示例: 在通用代码中: ? 在 JVM 平台中,代码如下所示: ? 详细信息请参考此文档,并按照步骤构建多平台项目。...如果调用一个返回类型参数 T 并将返回值转换为特定类型 Foo 的泛型方法,则编译器现在可以理解此调用的 T 需要绑定到 Foo 类型。...标准库 Kotlin 标准库 artifacts 及拆分包 Kotlin 标准库现在完全兼容 Java 9 的模块系统,它会禁止对包进行拆分(多个 jar 包文件在同一个包中声明类)。...这可能会影响应用程序的整体性能;仅在多个类之间共享一些复杂的状态并在类初始化时更新时才使用它。 “手工”的解决方法是将控制流的子表达式的值存储在变量中,而不是直接在调用参数中对它们进行求值。...破坏性变更:通过内联的扩展接收器修复平台的 null 转义 在平台类型空值上调用的内联扩展函数并没有检查接收器是否为 null,并因此允许 null 转义到其他代码中。

    2.8K10

    类加载器知识点吐血整理

    思考 我们平时写的代码或程序到底是如何运行起来的呢? 比如我开发用的是 java 语言,源码是是 .java 的文件,但他们是没有办法运行的。...通常我们会打成 jar 包,然后部署到服务器上,其实我们所说的打包就是编译,即把 java 文件编译成 .class 字节码文件,那如何执行这些 .class 字节码文件呢?...符号引用 其实上面的引用关系就是符号引用 但在程序运行时,光有符号引用是不够的,系统需要明确知道该方法的位置,所以 jvm 为每个类准备了一张方法表,将其所有的方法都列入到了方法表中,当需要调用一个类的方法时...通过解析操作,符号引用可以转变为目标方法在类方法表中的位置,使得方法被成功调用。 初始化 初始化是类加载的最后一个阶段,只要前面的阶段都没有问题,就会进入到初始化阶段。那初始化阶段做什么工作呢?...小总结 通过上面的介绍,我想大家应该了解了我们平时写的代码,最后到底是如何运行起来的了吧,总之一句话就是我们编写的 java 文件,会被编译成 class 字节码文件,然后由 jvm 把主动使用的类加载到内存中

    37720

    使用NGINX反向代理部署Spring Boot应用

    本文介绍如何创建一个简单的Spring Boot应用,然后通过NGINX反向代理进行发布。 开始之前 你需要一个同时装有Java 8和NGINX的Linode虚拟主机。...若需要了解如何为生产环境配置NGINX,请参阅NGINX入门指南。 在文本编辑器中打开/etc/apt/sources.list,并在文件最后追加以下内容。...按照控制台中打印的说明操作: source "/home/username/.sdkman/bin/sdkman-init.sh" 验证SDKMAN!是否已安装: sdk help 4....此示例创建一个Endpoint以在Spring应用中返回"Hello world"。需添加两个额外的引用和一个新类。...构建应用程序。这将在在项目中创建一个名为build的新目录。 ./gradlew build 4. 运行嵌入了Tomcat服务器的应用。该应用将在localhost:8080上运行。

    9.9K40
    领券