当前位置: 首页 > ds >正文

Java#包管理器来时的路

不依赖任何Jar包 - HelloWorld.java

mkdir demo && cd demo;# HelloWorld.java
cat > HelloWorld.java << 'EOF'
public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, world!");}
}
EOF# 编译class
javac HelloWorld.java;# 运行
java HelloWorld;

JDK11+不用先编译,可直接运行 java HelloWorld.java;

依赖其它Jar包 - HelloWorld.java

mkdir demo && cd demo;# 引入其他Jar包
mkdir -p libs && curl -o libs/hutool-core-5.8.39.jar https://repo1.maven.org/maven2/cn/hutool/hutool-core/5.8.39/hutool-core-5.8.39.jar# wget -P libs https://repo1.maven.org/maven2/cn/hutool/hutool-core/5.8.39/hutool-core-5.8.39.jar (我电脑wget太老不支持https)# HelloWorld.java
cat > HelloWorld.java << 'EOF'
import cn.hutool.core.util.StrUtil;public class HelloWorld {public static void main(String[] args) {System.out.println(StrUtil.concat(true, "Hello", " world!"));}
}
EOF# 编译class
javac -cp ".:./libs/hutool-core-5.8.39.jar" HelloWorld.java;# 运行
java -cp ".:./libs/hutool-core-5.8.39.jar" HelloWorld.java;

问题:执行 java -cp "./libs/hutool-core-5.8.39.jar" HelloWorld
错误: 找不到或无法加载主类 HelloWorld
原因-cp参数指定了类路径,当前只包含了 hutool-core-5.8.39.jar,但没有包含当前目录(即HelloWorld.class所在的目录
解决:在类路径中同时指定当前目录和所需的jar包目录
java -cp “.:./libs/hutool-core-5.8.39.jar” HelloWorld (# Linux/macOS)
java -cp “.;./libs/hutool-core-5.8.39.jar” HelloWorld ( # Windows)

类带有包声明 - HelloWrold.java

例如: package com.example;
-d: 自动生成包目录结构 或者 手动创建目录结构(mkdir -p com/example)
javac -d . -cp “./libs/hutool-core-5.8.39.jar” HelloWorld.java (编译)
java -cp “.:./libs/hutool-core-5.8.39.jar” com.example.HelloWorld (运行全限定类名)

TODO 手动Jar包

http://www.xdnf.cn/news/16604.html

相关文章:

  • 常见认证机制详解
  • Python爬虫入门:从零开始抓取网页数据
  • LeetCode|Day27|70. 爬楼梯|Python刷题笔记
  • print(“\033[31m红\033[32m绿\033[34m蓝\033[0m默认色“)
  • Java学习-------外观模式
  • [spring6: Mvc-异步请求]-源码分析
  • LINUX727 磁盘管理回顾1;配置文件回顾
  • 机械学习初识--什么是机械学习--机械学习有什么重要算法
  • 习题综合练习
  • 数据结构基础内容(第二篇:线性结构)
  • Qt 分裂布局:QSplitter 使用指南
  • 07.4-使用 use 关键字引入路径
  • python中的容器与自定义容器
  • SpringBoot多容器化实例实战
  • FFmpeg——参数详解
  • 墨者:通过手工解决SQL手工注入漏洞测试(MongoDB数据库)
  • C++学习(线程相关)
  • 负载均衡Haproxy
  • SABR-Net
  • uniapp input 聚焦时键盘弹起滚动到对应的部分
  • iOS安全和逆向系列教程 第21篇:iOS应用加密与混淆技术深度剖析
  • Java面试宝典:MySQL性能优化
  • 用 ESP32 和 LCD 轻松显示植物湿度
  • 第十八章:AI的“通感”:揭秘图、文、音的共同语言——CLIP模型
  • 系统整理Python的循环语句和常用方法
  • Keil MDK 嵌入式开发问题:Error: L6218E: Undefined symbol HAL_TIM_PWM_ConfigChannel
  • GIt学习——分布式版本控制工具
  • 设计模式(八)结构型:桥接模式详解
  • 设计模式(七)结构型:适配器模式详解
  • 【网络协议安全】任务15:DHCP与FTP服务全配置