Java: Yahoo Finance API: SocketException: Permission denied -


so i'm trying write first program pulls data web, , since it's financial program, decided use (allegedly) easy , simple yahoo! finance api. downloaded api .jar files, , save, imported whole lot of them eclipse via add external jars tool.

problem is, whenever try run it, socketexception: permission denied runtime error.

the code i'm running incredibly basic:

stock stock = yahoofinance.get("orcl"); 

that 1 line of code should value of oracle (orcl) stock yahoo finance. instead throws exception.

i have tried can think of:

1) disabled firewalls 2) double checked .jar imports 3) tested running line part of separate thread (a desperate, blind move reaching @ point).

i have exhausted every possible angle of research can think of, , i've found far this: sending email using jsp

this looks similar problem, attempted solution suggested: adding line "-djava.net.preferipv4stack=true" eclipse.ini file. seems have had no effect.

just in case, i'm pasting contents of eclipse.ini file here too, in case put in wrong spot or something:

-startup plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140603-1326 -product org.eclipse.epp.package.standard.product --launcher.defaultaction openfile --launcher.xxmaxpermsize 256m -showsplash org.eclipse.platform --launcher.xxmaxpermsize 256m --launcher.defaultaction openfile --launcher.appendvmargs -vmargs -djava.net.preferipv4stack=true -dosgi.requiredjavaversion=1.7 -xms40m -xmx512m 

i'm out of ideas right now. want know why exception being thrown, , can prevent it.

thanks in advance.

edit: request, full stack trace.

apr 27, 2015 11:54:35 pm yahoofinance.quotes.quotesrequest getresult info: sending request: http://finance.yahoo.com/d/quotes.csv?s=orcl&f=nsc4xab2sa5sbb3sb6sl1sk3sd1t1opghva2kjm3m4sj2sss1sj1sf6sr1qdyee7e9e8rr5p6p5b4s6j4t8&e=.csv apr 27, 2015 11:54:35 pm yahoofinance.quotes.quotesrequest getresult severe: java.net.socketexception: permission denied: connect java.net.socketexception: permission denied: connect     @ java.net.dualstackplainsocketimpl.connect0(native method)     @ java.net.dualstackplainsocketimpl.socketconnect(unknown source)     @ java.net.abstractplainsocketimpl.doconnect(unknown source)     @ java.net.abstractplainsocketimpl.connecttoaddress(unknown source)     @ java.net.abstractplainsocketimpl.connect(unknown source)     @ java.net.plainsocketimpl.connect(unknown source)     @ java.net.sockssocketimpl.connect(unknown source)     @ java.net.socket.connect(unknown source)     @ java.net.socket.connect(unknown source)     @ sun.net.networkclient.doconnect(unknown source)     @ sun.net.www.http.httpclient.openserver(unknown source)     @ sun.net.www.http.httpclient.openserver(unknown source)     @ sun.net.www.http.httpclient.<init>(unknown source)     @ sun.net.www.http.httpclient.new(unknown source)     @ sun.net.www.http.httpclient.new(unknown source)     @ sun.net.www.protocol.http.httpurlconnection.getnewhttpclient(unknown source)     @ sun.net.www.protocol.http.httpurlconnection.plainconnect0(unknown source)     @ sun.net.www.protocol.http.httpurlconnection.plainconnect(unknown source)     @ sun.net.www.protocol.http.httpurlconnection.connect(unknown source)     @ sun.net.www.protocol.http.httpurlconnection.getinputstream0(unknown source)     @ sun.net.www.protocol.http.httpurlconnection.getinputstream(unknown source)     @ yahoofinance.quotes.quotesrequest.getresult(quotesrequest.java:83)     @ yahoofinance.yahoofinance.getquotes(yahoofinance.java:332)     @ yahoofinance.yahoofinance.get(yahoofinance.java:76)     @ yahoofinance.yahoofinance.get(yahoofinance.java:61)     @ currency.currencyconverter.createwindow(currencyconverter.java:35)     @ currency.currencyconverter.<init>(currencyconverter.java:25)     @ currency.currencydriver$1.run(currencydriver.java:10)     @ java.awt.event.invocationevent.dispatch(unknown source)     @ java.awt.eventqueue.dispatcheventimpl(unknown source)     @ java.awt.eventqueue.access$500(unknown source)     @ java.awt.eventqueue$3.run(unknown source)     @ java.awt.eventqueue$3.run(unknown source)     @ java.security.accesscontroller.doprivileged(native method)     @ java.security.protectiondomain$1.dointersectionprivilege(unknown source)     @ java.awt.eventqueue.dispatchevent(unknown source)     @ java.awt.eventdispatchthread.pumponeeventforfilters(unknown source)     @ java.awt.eventdispatchthread.pumpeventsforfilter(unknown source)     @ java.awt.eventdispatchthread.pumpeventsforhierarchy(unknown source)     @ java.awt.eventdispatchthread.pumpevents(unknown source)     @ java.awt.eventdispatchthread.pumpevents(unknown source)     @ java.awt.eventdispatchthread.run(unknown source) 

i think i'm having same problem: takes little bit hard, managed information wanted being little bit boring, mean, recursively:

void searchquote(symbol) throws interruptedexception {     try{         stock stock = yahoofinance.get(symbol);     }catch(exception e){         if(e.getclass().getname().equals("java.net.socketexception") ||                  e.getclass().getname().equals("java.net.sockettimeoutexception")){             thread.sleep(60000);             searchquote(symbol);         }     } } 

for me, worked.