概要
Rooを起動しようとしたら、こんなエラーが出た。
ERROR: Error starting file:/I:/spring-roo-1.1.5.RELEASE/bundle/org.springframework.roo.addon.backup-1.1.5.RELEASE.jar (org.osgi.framework.BundleException: Unresolved constraint in bundle org.springframework.roo.addon.backup [7]: Unable to resolve 7.0: missing requirement [7.0] package; (&(package=org.springframework.roo.file.monitor.ev ent)(version>=1.1.0)(!(version>=2.0.0))) [caused by: Unable to resolve 39.0: missing requirement [39.0] package; (&(package=org.springframework.roo.support.ant)(ve rsion>=1.1.0)(!(version>=2.0.0))) [caused by: Unable to resolve 52.0: missing requirement [52.0] package; (package=javax.xml.namespace)]])
ERROR: Error starting file:/I:/spring-roo-1.1.5.RELEASE/bundle/org.springframework.roo.addon.configurable-1.1.5.RELEASE.jar (org.osgi.framework.BundleException: Unresolved constraint in bundle org.springframework.roo.addon.configurable [8]: Unable to resolve 8.0: missing requirement [8.0] package; (&(package=org.springframework.roo.classpath)(vers ion>=1.1.0)(!(version>=2.0.0))) [caused by: Unable to resolve 36.0: missing requirement [36.0] package; (&(package=org.springframework.roo.file.monitor)(v ersion>=1.1.0)(!(version>=2.0.0))) [caused by: Unable to resolve 39.0: missing requirement [39.0] package; (&(package=org.springframework.roo.support.ant)(ve rsion>=1.1.0)(!(version>=2.0.0))) [caused by: Unable to resolve 52.0: missing requirement [52.0] package; (package=javax.xml.namespace)]]])
ERROR: Error starting file:/I:/spring-roo-1.1.5.RELEASE/bundle/org.springframework.roo.addon.creator-1.1.5.RELEASE.jar (org.osgi.framework.BundleException: Unresolved constraint in bundle org.springframework.roo.addon.creator [9]: Unable to resolve 9.0: missing requirement [9.0] package; (package=javax.xml.parsers))
ERROR: Error starting file:/I:/spring-roo-1.1.5.RELEASE/bundle/org.springframework.roo.addon.dbre-1.1.5.RELEASE.jar (org.osgi.framework.BundleException: Unresolved constraint in bundle org.springframework.roo.addon.dbre [10]: Unable to resolve 10.0: missing requirement [10.0] package; (package=javax.xml.parsers))
環境
- Windows 8.1
- JDK 1.7.55( 1.8もインストールしていた)
- Spring Roo 1.2.2.RELEASE
原因
- ref 1によるとJDKが必要らしい。
- %SYSTEMROOT%\System32\にインストールされているjava.exeが使われるとJREのjava.exeが実行される場合がある。
対策
- PATHにJAVA_HOME/bin を追加(%SYSTEMROOT%\System32\よりも優先度が高い箇所に記述する。PATHは書かれている順に評価される。)
- roo.batをJAVA_HOMEを参照するように書き換える
roo.bat
@echo off
setlocal enabledelayedexpansion
for %%? in ("%~dp0..") do set ROO_HOME=%%~f?
rem echo Resolved ROO_HOME: "%ROO_HOME%"
rem Build a classpath containing our two magical startup JARs
for %%a in ("%ROO_HOME%\bin\*.jar") do set ROO_CP=!ROO_CP!%%a;
rem Hop, hop, hop...
"%JAVA_HOME%\bin\java" -Dflash.message.disabled=false -Djline.nobell=true %ROO_OPTS% -Droo.args="%*" -DdevelopmentMode=false -Dorg.osgi.framework.storage="%ROO_HOME%\cache" -Dfelix.auto.deploy.dir="%ROO_HOME%\bundle" -Dfelix.config.properties="file:%ROO_HOME%\conf\config.properties" -Droo.console.ansi=true -cp "%ROO_CP%" org.springframework.roo.bootstrap.Main
rem echo Roo exited with code %errorlevel%
:end