aspectj - Load-time weaving and java -jar -
is possible add aspectj load-time agent when start program -jar ?
with jetty, if start
java -javaagent:aspectjweaver-1.8.0.jar -classpath toto.jar -jar start.jar
the aspectj not apply. if call
java -javaagent:aspectjweaver-1.8.0.jar -classpath toto.jar;start.jar org.eclipse.jetty.start.main
all fine.
the problem -jar
, ltw seems there different classloading order compared -cp (...) my.mainclass
approach. jar specified -jar
loaded before weaver can see aspects , meta-inf/aop-ajc.xml
in aspect jar on classpath. found workaround, not nice: can put aspect jar on jvm's boot classpath, in case aspects loaded before weaving agent. have add aspectjrt.jar
boot classpath:
java -xbootclasspath/a:aspect.jar;lib\aspectjrt.jar -javaagent:lib\aspectjweaver.jar -jar application.jar
considering circumstance, guess preferable add application jar normal classpath , specify main class manually. matter of taste , whether know main class name when starting application.
Comments
Post a Comment