OSGi 学习(二)

上一篇说了很多虚的东西,现在说点别的。

OSGi系统的独立环境下的项目结构以及启动脚本。

先说项目结构,基于equinox的OSGi容器的项目结构如下所示:

image

bin中定义启动脚本,停止脚本之类的。

configuration定义配置文件,比如:config.ini,log4j.properties等配置文件。

environment包含了一些基础bundle,比如:spring系列;log4j等。

platform是基于OSGi上的,做二次开发的bundle。

这里面比较麻烦的就是,osgi这个bundle最好和configuration在同级目录下,这样生成的缓存文件就在configuration中。

再说说启动脚本。

直接上代码吧:

@echo off

if "%JAVA_HOME%" == "" (
    echo The JRE was not found in directory %JAVA_HOME%. ^(JAVA_HOME^)
    echo Please edit your environment and set the JAVA_HOME
    echo variable to point to the root directory of your Java installation.
    goto :EOF
)

set MEM_ARGS=-Xms512m -Xmx512m -Xmn256M -XX:PermSize=128m -XX:MaxPermSize=128m
set JAVA_OPTIONS=%JAVA_OPTIONS% -XX:+UseParNewGC -XX:ParallelGCThreads=5 -XX:CMSFullGCsBeforeCompaction=5 -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=40 -XX:+UseAdaptiveSizePolicy -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass

rem set CLASSPATH=%CLASSPATH%
rem "%JAVA_HOME%injava" %MEM_ARGS% %JAVA_OPTIONS% -Dorg.osgi.framework.bootdelegation=javax.*,org.ietf.*,org.omg.*,org.w3c.*,org.xml.*,sun.*,com.sun.* -jar equinox.jar -console

set CLASSPATH=%CLASSPATH%;../org.eclipse.osgi-3.9.1.v20130814-1242.jar
set WEAVING_OPTIONS=-Daj.weaving.verbose=true -Dorg.aspectj.weaver.showWeaveInfo=true -Dorg.aspectj.osgi.verbose=true
"%JAVA_HOME%injava" %MEM_ARGS% %JAVA_OPTIONS% -classpath %CLASSPATH% %WEAVING_OPTIONS% -Dorg.osgi.framework.bootdelegation=javax.*,java.*,org.ietf.*,org.omg.*,org.w3c.*,org.xml.*,sun.*,com.sun.* org.eclipse.core.runtime.adaptor.EclipseStarter -console

:EOF

简单说说bat的语法。

rem是个注释命令,该命令后的内容在程序执行的时候将不被显示与执行。

echo是一个回显命令,主要参数有off(不显示)和on(显示),一般用其输出一个特定的消息。

符号(@):关闭当前行的回显。

原文地址:https://www.cnblogs.com/asfeixue/p/3629169.html