what does MyClass.class.getClassLoader().getResource() do?

Um. . .ok, I'm having a LD moment here. . .What does this java statement do?MyClass.class.getClassLoader().getResource("scripts").getPath() ;
[188 byte] By [megaskinsa] at [2007-11-27 4:49:02]
# 1
MyClass.class is a class literal. It evaluates to a reference to the Class object for MyClass.Start here, and then read the docs for each method: http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html
jverda at 2007-7-12 10:02:03 > top of Java-index,Java Essentials,New To Java...
# 2

I've peered at the API, and I don't think this question is answered there:

Are there equivalent?

obj.getClass().getClassLoader().getResource(path)

//vs

obj.getClass().getResource(path)

I thought Class's getResource was a convenience method that took you you ClassLoader's, but is that correct? Which do *you* use?

Hippolytea at 2007-7-12 10:02:03 > top of Java-index,Java Essentials,New To Java...
# 3
> I've peered at the API, and I don't think this> question is answered there:How is it not answered?
jverda at 2007-7-12 10:02:03 > top of Java-index,Java Essentials,New To Java...
# 4
Thanks. I think I understand, but of course now I have to figure out why this is returning a null value :)
megaskinsa at 2007-7-12 10:02:03 > top of Java-index,Java Essentials,New To Java...
# 5

> > I've peered at the API, and I don't think this

> > question is answered there:

>

>

> How is it not answered?

LOL, I guess it is answered. Class's getResource does some path mangling before delegating to its ClassLoader. So the methods are not the same.

Hippolytea at 2007-7-12 10:02:03 > top of Java-index,Java Essentials,New To Java...
# 6
> Thanks. I think I understand, but of course now I> have to figure out why this is returning a null value> :)Most likely you're misunderstanding how the paths are found relative to your classpath, or the difference between having a leading slash or not.
jverda at 2007-7-12 10:02:03 > top of Java-index,Java Essentials,New To Java...
# 7

> Um. . .ok, I'm having a LD moment here. . .

>

> What does this java statement do?

>

> MyClass.class.getClassLoader().getResource("scri

> pts").getPath() ;

getPath is returning null? Not getResource returning null and then NPE on getPath? According to the docs, getPath cannot return null.

jverda at 2007-7-12 10:02:03 > top of Java-index,Java Essentials,New To Java...
# 8

Here's the error from the log:

java.lang.NullPointerException

at com.oneok.dbLoader.scripts.OngDailyScriptLoader.getScripts(OngDailyScriptLoader.java:46)

at com.oneok.dbLoader.scripts.OngDailyScriptLoader.Run(OngDailyScriptLoader.java:465)

at com.oneok.dbLoader.scripts.OngDailyScriptLoader.run(OngDailyScriptLoader.java:494)

at org.apache.jsp.runScript_jsp._jspService(runScript_jsp.java:52)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)

at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)

at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)

at java.lang.Thread.run(Unknown Source)

megaskinsa at 2007-7-12 10:02:03 > top of Java-index,Java Essentials,New To Java...