여기 JAAS 샘플 프로그램을 프로파일 링하려고합니다. (http://www.devx.com/getHelpOn/Article/9915/0/page/4). 코드를 다운로드하고 실행했습니다. 프로파일 링을하지 않으면 정상적으로 실행됩니다. 나는 (그것을 프로필) 자바 에이전트를 실행하려고 할 때, 그것은 다음과 같이 나에게 예외를 제공JAAS 예제 프로그램 프로파일 링
java -cp SimpleAction.jar:SimpleAuthz.jar:SimpleLogMod.jar -Djava.security.manager -Djava.security.policy==SimpleJAAS.policy -Djava.security.auth.login.config==SimpleJAAS.config com.gabhart.security.SimpleAuthz
:
java.security.AccessControlException: access denied (java.util.PropertyPermission ch.usi.dag.jborat.liblist read)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1285)
at java.lang.System.getProperty(System.java:650)
at ch.usi.dag.jborat.agent.JavaAgent.premain(JavaAgent.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:323)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:338)
그러나 프로그램이 실행을 아래와 같이 그 프로그램을 실행하는 명령 본다 괜찮 으면, 프로파일 러는 출력을 생성하지 않습니다. 나는 널리 사용되지 않는 자바 프로파일 러를 사용한다. 다른 java 프로그램/응용 프로그램을 올바르게 프로파일하지만이 프로파일은 아닙니다.
나는 프로파일 러와 함께 샘플 JAAS 프로그램을 실행 명령을 다음 사용합니다 (이 스크립트 파일에서 복사되는 경기 수 주)
**java -javaagent:lib/jborat-agent.jar \
-Dch.usi.dag.jborat.exclusionList="conf/exclusion.lst" \
-Dch.usi.dag.jborat.liblist="conf/lib.lst" \
-Dch.usi.dag.jp2.outputFilePrefix="JAAZexample_output" \
-Dch.usi.dag.jborat.instrumentation="ch.usi.dag.jp2.instrument.AddInstrumentation" \
-Dch.usi.dag.jp2.dumpers="ch.usi.dag.jp2.dump.xml.XmlDumper" \
-Dch.usi.dag.jborat.codemergerList="conf/codemerger.lst" \
-Xbootclasspath/p:./lib/Thread_JP2.jar:lib/jborat-runtime.jar:lib/jp2-runtime.jar/jp2.jar/jborat-agent.jar/jborat.jar**:SimpleAction.jar:SimpleAuthz.jar:SimpleLogMod.jar \
-Djava.security.manager -Djava.security.policy==SimpleJAAS.policy \
-Djava.security.auth.login.config==SimpleJAAS.config com.gabhart.security.SimpleAuthz
지정된 예외가 발생하는 이유 누군가가 말해 주시겠습니까 이유 내 프로 파일러에서 출력물을 생성하지 않습니까?
감사합니다.
, 내가 얻을이 : sun.reflect.NativeConstructorAccessorImpl.newInstance0 (기본 방법) sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:39) sun.reflect.DelegatingConstructorAccessorImpl.newInstance에서 \t (DelegatingConstructorAccessorImpl에서 \t 된 .java 27) java.lang.reflect.Constructor.newInstance (Constructor.java:513)에서 \t의 java.lang.Class에서 java.lang.Class.newInstance0 (Class.java:355) \t에서 \t. newInstance (Class.java:308) \t (ch.usi.dag.jborat.agent.JavaAgent.premain (JavaAgent.java:22) )at sun.reflect.NativeMethodAccessorImpl.invoke0 (기본 메소드) – user523956
@ user523956 - 해당 스택 추적에 예외가 있습니까? – jtahlborn
그것은 "bla bla에서 java.lang.ExceptionInInitializerError"라고 말합니다 .... 어떤 생각입니까? – user523956