ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From __matthewHawthorne <mhawtho...@alumni.pitt.edu>
Subject Re: Problem running executable jar - classpath issues
Date Wed, 23 Jul 2003 23:57:18 GMT
I don't know much about loading the relative paths... I'm surprised that 
it ever worked, using Class.getResource.  I've only had success using 
the /absolutePath notation, or loading a resource by name only from the 
same directory/package that the class was in.

Mixing .class files and other types of files can be a bit ugly, the only 
reason I've done it is to load resources at runtime, which is what 
you're trying to do.  I don't think it's so bad at deployment time... I 
usually have a /data or /resources directory that gets merged in with 
the classes when I build my jars with ant.

I'm not sure what you mean by path.dir.resource... ?




Duffey, Kevin wrote:

>We tried that. Didn't work. My co-worker said to use it, and when I did, it didn't find
the resource in the .jar file. Now, we were using relative paths still, so perhaps the /path
using absolute path is the key to using that? If so, is it absolute from the root of the .jar
file? Also, if the resource happens to be nested in between the packages (I don't know why
anyone wants to mess up their .class packages with other types of files, so I don't approve
of this method), then using the path.dir.resource is the way to go, right?
>
>
>-----Original Message-----
>From: __matthewHawthorne [mailto:mhawthorne@alumni.pitt.edu] 
>Sent: Wednesday, July 23, 2003 4:46 PM
>To: Ant Users List
>Subject: Re: Problem running executable jar - classpath issues
>
>Here are two possible workarounds:
>
>If your image is in
><jar>/images/img.gif
>you can load it with getClass().getResource("/images/img.gif")
>
>Or, if the class that loads the images is in the org.somebody package,
>and the image is in
><jar>/org/somebody/img.gif
>you can load it with getClass().getResource("img.gif")
>
>Take a look at the Class.getResource javadoc if this doesn't seem correct.
>
>
>
>
>Duffey, Kevin wrote:
>
>  
>
>>Haha, that is exactly what I was trying to avoid, wrapper script. In my code, since
I know it is deployed in a .jar file, I have the getClass().getClassLoader().getResource("relative-path/img.gif");
for example, so using the wrapper class would work from a batch file, but the other way I
tried is using the classname approach in <java task, and that didn't work because the above
code looks for resources within the jar and since it wasn't running in a .jar, it wouldn't
work. Man, I can't believe there is no other way around this!
>>
>>
>>-----Original Message-----
>>From: __matthewHawthorne [mailto:mhawthorne@alumni.pitt.edu] 
>>Sent: Wednesday, July 23, 2003 4:38 PM
>>To: Ant Users List
>>Subject: Re: Problem running executable jar - classpath issues
>>
>>This is default jar file behavior, and AFAIK, there is no way to change 
>>it.  If it is a huge problem, a problem large enough to make you want to 
>>question your deployment strategy, you may want to either try using 
>>links (if you're using unix), or creating a wrapper script to set your 
>>classpath and run your program.
>>
>>
>>
>>
>>Duffey, Kevin wrote:
>>
>> 
>>
>>    
>>
>>>Ok, that sucks then. So, when deploying, my executable .jar is wrapped up in a
zip file along with the lib dir. Unzipped the lib dir and app.jar are in the same dir. Therefore,
relative of lib/xxx would work in that case. When developing, I don't want to put the normal
<root>/lib in the <dist> dir as well, that is wasted space, not that it’s a
big deal, but it looks bad and requires extra maintenance. I can't believe there is no way
to have Ant execute a jar file in such a manner as to indicate that the .jar file is being
ran from another dir. I thought that is what the dir="" in the <java > call was for,
to tell it where to start the JVM from, and thus if it loads the executable .jar file from
some sub-dir, it would force it to operate out of the location dir="" is set to. Is there
anything like that, or any other way to do this?
>>>
>>>
>>>-----Original Message-----
>>>From: Conor MacNeill [mailto:conor@cortexebusiness.com.au] 
>>>Sent: Wednesday, July 23, 2003 4:31 PM
>>>To: Ant Users List
>>>Subject: Re: Problem running executable jar - classpath issues
>>>
>>>On Thu, 24 Jul 2003 08:35 am, Duffey, Kevin wrote:
>>>
>>>
>>>   
>>>
>>>      
>>>
>>>>Hi all,
>>>>
>>>>Can somebody please explain how to make this work? I don't want to have to
>>>>copy my app.jar into the <project root> dir, nor do I want to keep two
>>>>directories of the libraries! I want to use my <project root>/lib/*.jar
>>>>     
>>>>
>>>>        
>>>>
>>>>from the app.jar located in <project root>/dist/app.jar, and execute
this
>>>>from the build script.
>>>   
>>>
>>>      
>>>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>Classpath entries in a manifest are relative to the location of the jar, not 
>>>   
>>>
>>>      
>>>
>>>from where you are running the code.
>> 
>>
>>    
>>
>>>Conor
>>>
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>>>For additional commands, e-mail: user-help@ant.apache.org
>>>
>>>
>>>---
>>>Incoming mail is certified Virus Free.
>>>Checked by AVG anti-virus system (http://www.grisoft.com).
>>>Version: 6.0.501 / Virus Database: 299 - Release Date: 7/14/2003
>>>
>>>
>>>---
>>>Outgoing mail is certified Virus Free.
>>>Checked by AVG anti-virus system (http://www.grisoft.com).
>>>Version: 6.0.501 / Virus Database: 299 - Release Date: 7/14/2003
>>>
>>>
>>>
>>>***************************************************************************
>>>"The information contained in this e-mail message  may be confidential and 
>>>protected from disclosure.  If you are not the intended recipient, any 
>>>dissemination, distribution or copying is strictly prohibited.  If you think 
>>>that you have received this e-mail message in error, please e-mail the 
>>>sender at exchangeadmins@marketron.com."
>>>***************************************************************************
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>>>For additional commands, e-mail: user-help@ant.apache.org
>>>
>>>
>>>
>>>
>>>   
>>>
>>>      
>>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>>For additional commands, e-mail: user-help@ant.apache.org
>>
>>
>>---
>>Incoming mail is certified Virus Free.
>>Checked by AVG anti-virus system (http://www.grisoft.com).
>>Version: 6.0.501 / Virus Database: 299 - Release Date: 7/14/2003
>>
>>
>>---
>>Outgoing mail is certified Virus Free.
>>Checked by AVG anti-virus system (http://www.grisoft.com).
>>Version: 6.0.501 / Virus Database: 299 - Release Date: 7/14/2003
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>>For additional commands, e-mail: user-help@ant.apache.org
>>
>>
>> 
>>
>>    
>>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>For additional commands, e-mail: user-help@ant.apache.org
>
>
>---
>Incoming mail is certified Virus Free.
>Checked by AVG anti-virus system (http://www.grisoft.com).
>Version: 6.0.501 / Virus Database: 299 - Release Date: 7/14/2003
> 
>
>---
>Outgoing mail is certified Virus Free.
>Checked by AVG anti-virus system (http://www.grisoft.com).
>Version: 6.0.501 / Virus Database: 299 - Release Date: 7/14/2003
> 
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>For additional commands, e-mail: user-help@ant.apache.org
>
>
>  
>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message