Java 支持在类 Unix 系统上将单个 Java 源代码文件像脚本一样运行,但是和真正的脚本不一样,还是需要编译的。也就是说需要在 Linux、macOS、WSL 下运行,Windows PowerShell 或者命令行下不能用这种方法。

由于查了一下没有看到详细说明的文章,这里写一篇文章记录一下。下面详细说说如何编写 Java “脚本”。

首先是 Java 源文件不能使用.java后缀,要直接是文件名,例如HelloJava。这里使用 vim 新建一个名为“HelloJava”的文件:

vi HelloJava

然后在文件第一行像其他脚本一样添加说明和版本(为了方便多版本控制):

//Linux
#!/path/to/your/bin/java --source 16//macOS
#!/usr/bin/java --source 19

如果不知道版本是多少,那么使用java -version查看。如下版本为 19:

$ java -version
java version "19.0.1" 2022-10-18
Java(TM) SE Runtime Environment (build 19.0.1+10-21)
Java HotSpot(TM) 64-Bit Server VM (build 19.0.1+10-21, mixed mode, sharing)

“脚本”内容如下:

#!/usr/bin/java --source 19public class HelloJava {public static void main(String[] args) {System.out.println("Hello, world!");}
}

保存退出 vi 之后,需要调整权限,因为如果你没有调整过遮掩码,那一般新建文件都没有可执行权限,这样不能运行。调整权限很简单,如下:

chmod +x HelloJava

调整完权限之后,就可以像脚本一样运行了。如下:

$ ./HelloJava
Hello, world!

如果不想使用相对地址,并且存放位置固定,那么把目录添加到PATH环境变量即可,方法请移步:Linux——如何直接使用脚本(配置$PATH变量中包含的所有bin目录)。

不使用后缀我猜是 Java 为了区别源文件和“脚本文件”。再者说在类 Unix 系统中只是让用户/开发者知道这个文件是什么类型的,后缀没有实际意义,区分文件一般是通过文件开头的内容或者块。

希望能帮到有需要的人~

如何使用Java写“脚本”(单个Java文件如何像脚本一样使用运行)相关推荐

  1. 怎样用java写一个简单的文件复制程序

    怎样用java写一个简单的文件复制程序 代码来源:https://jingyan.baidu.com/article/c35dbcb0d6f1398916fcbc07.html package Num ...

  2. Java写内容到本地文件

    Java程序写内容到本地文件,代码如下: 导包部分: import java.io.BufferedWriter; import java.io.File; import java.io.FileWr ...

  3. 如何写windbg高级脚本---以访问文件的windbg脚本为例说明

    最近需要在访问指定文件时中断下来,但不知道如何下断,在网上搜索了一番无果,只好自己摸索了.听大侠说windbg的条件断点功能异常强大,可以实现,不禁心痒,特尝试一番,顺便熟悉一下windbg的脚本语法 ...

  4. linux编写脚本读取txt文件,用bash脚本或者批处理 bat脚本 读取一个目录下.txt文件第一行内容存放到新文件a.txt...

    起因:我把cmd 控制台说成了dos! 发展:人类生气了,跟我扯了一堆 dos 还有什么玩意儿,在我第二次还说那个是dos界面以后:( 后续:人类要我写 批处理bat 还有linux bash 脚本去 ...

  5. 如何写sybase sql脚本文件_写一个删除lock文件的skill脚本

    Cadence软件使用过程中偶尔会遇到文件被lock的情况,这是Cadence软件对文件的一种保护措施,大部分情况都是对用户友好的,但是偶尔也会给用户带来困扰,给工作带来的一定的不便. 文件是如何被锁 ...

  6. 用java写猜拳游戏,Java写人机猜拳游戏(可扩展其他游戏或其他参与者)

    初学Java,写一个控制台输入输出的小游戏,模拟人机猜拳.为了扩展性稍微强一些,这个小游戏代码有些复杂,但确实可以扩展其他游戏或者其他参与者的. 代码还有一些小问题,后面贴出来... /******* ...

  7. 如何用JAVA写acm_用java来写ACM

    前言 从去年10月份开始就一直都在九度oj平台写acm,到今天在九度oj的总排名已经到了第6名,收获很多特别是算法和数据结构方面的提高,这种提高直接反映在我找工作的顺利中 但是人总要学会拥抱变化,特别 ...

  8. java写枪战游戏,Java版星球大战游戏(横向射击)

    Java版星球大战游戏(横向射击) 准备逐步整理一下手中的第三方Java游戏代码,将能用的部分融入到LGame里去,没有能用部分的就直接删掉. 但无论程式难易如何,也是原作者一番心血,不应将它们弃如敝 ...

  9. java写dnf_用java模拟dnf武器强化的过程

    几点说明:需要用户输入武器初始等级以及是否需要进行强化. 整个强化过程都包含在一个while循环里,利用标记i来停止循环,i==1继续强化:i==0为停止强化. 关于概率的问题,运用到随机数,r为0~ ...

  10. JAVA写代码学费,java编程培训班学费是多少

    JavaWeb 01HTML5入门 -HTML的作用 -全局标签 -绝对路径与相对路径 -常见标签 -字符集 -图片整合 -表单标签 -布局指定的网页 02CSS3入门 -css声明类型 -常见的各种 ...

最新文章

  1. 叱咤风云的BERT为何败于商业环境?
  2. 2019年,比特币现金爱好者线下见面会发展至6大洲30个国家
  3. 拆除指令怎么设置_快捷指令(16)朗读屏幕内容
  4. 征集企业非技术面试疑难问题
  5. 同时支持mp4/ogg/webm/flv格式的视频播放
  6. Rust: Rust Language Cheat Sheet,强烈推荐!
  7. 学生简单个人博客网页DW模板 简单HTML静态网页设计个人主页制作 大学生个人网站模板下载 网页作业个人主页制作
  8. NBSI1.15部分源代码
  9. aspose利用word模板生成word、PDF
  10. video标签隐藏右下角的三个点
  11. LidarSLAM(一):NDT
  12. java 和 c md5加密_Java与C++实现同样的MD5加密算法
  13. 【思维】Hzy's Rabbit Stick
  14. 用python画小猪佩奇代码_用python画个小猪佩奇(turtle示例源码)
  15. OpenCV:Scalar数据类型理解
  16. 京东推荐商品列表API接口-(item_recommend-获取推荐商品列表API接口),京东API接口
  17. 午夜00:37分,与蚊子相伴无眠之夜
  18. python中self image_Python3用tkinter和PIL实现看图工具
  19. 运载火箭弹道飞行程序matlab,运载火箭弹道与控制理论基础
  20. 解决Windows 7播放网页视频没有声音的问题

热门文章

  1. 使用PySimpleGUI模块,写一个正则表达式的编辑器
  2. 使用button触发FileUpload控件的click事件
  3. 10多个WordPress团购主题和插件
  4. Echarts地图局部放大及返回实例
  5. Python 字典 实现古诗词答题系统
  6. 信号完整性(SI)电源完整性(PI)学习笔记(二十四)差分对与差分阻抗(四)
  7. Houdini烟雾和灯光
  8. netdxf 字体加粗_怎样将cad转换成pdf字体变粗
  9. 根据Excel自定义的格式导出数据
  10. Deep Multimodal Learning A survey on recent advances and trends读书笔记