在Ubuntu22.04上进行karaf开发的初次尝试,Karaf是Apache对OSGi的一个开源实现,即Java的动态模块化。本次尝试的JDK版本为OpenJDK11,Karaf版本为4.4.1
首先在Ubuntu上安装JDK并下载Karaf
# 安装JDK11
sudo apt install openjdk-11-jdk-headless
# 下载Karaf
wget https://dlcdn.apache.org/karaf/4.4.1/apache-karaf-4.4.1.tar.gz
wget是Linux上的一个下载工具,博客园的这篇文章介绍的比较详细:wget命令详解,操作过程中发现下载速度较慢,于是我先到Apache Karaf的下载网页把压缩包下载到我自己的Windows电脑上,再通过SSH传到阿里云的Ubuntu上,传输命令如下:
# ssh传输文件
C:\Users\zst> scp -r .\apache-karaf-4.4.1.tar.gz root@101.132.128.41:/root/java11
简书上的一篇文章:SSH远程登录实现本地机和服务器的文件传输对scp这个命令有详解
下载完成以后,解压tar包,使用以下命令,关于tar命令可查看文章:tar 解压缩命令详解
# 查看压缩包
root@iZuf60yg33pge1so7g2dd7Z:~/java11# ls
apache-karaf-4.4.1.tar.gz
# 解压
root@iZuf60yg33pge1so7g2dd7Z:~/java11# tar -xzvf apache-karaf-4.4.1.tar.gz
下面就按照Apache Karaf官网的指示一步步操作:
进入解压好的文件夹,运行命令
# 启动karaf框架
/bin/karaf
可以看到以下输出
下面运行Karaf的压缩包里面的样例,这里选用的样例是bundle,GitHub地址为【https://github.com/apache/karaf/tree/main/examples/karaf-bundle-example】
根据README里面的指示,依次输入命令
# 注册bundle
karaf@root()> feature:repo-add mvn:org.apache.karaf.examples/karaf-bundle-example-features/LATEST/xml
# 安装provider
karaf@root()> feature:install karaf-bundle-example-provider
# 安装client
karaf@root()> feature:install karaf-bundle-example-client
然后应该能看到以下输出:
OSGi的学习还有待进一步深入