|
Hello Guys
Do u know how can i set system properties of jvm in which i can specify the path.We can set it thru Project properties then under run in vm options
With -D and after that what we have to write?
Any Ideas?
Regards
Yogesh
|
|
|
|
|
java -D"property=C:/dir/subdir" class
Your program can now find the value of 'property' through the java.util.Properties class.
It's time for a new signature.
|
|
|
|
|
Take a look at
System.getProperties().list(System.out);
this will give you a list of all the default system properties, so you can figure out where your file should be stored so you can address it with a relative path.
It's time for a new signature.
|
|
|
|
|
Hello Sir
I setted System properties of jvm with -DservPath=c:\test
And when I tried to get property,it is returning null. I tried like this
Properties prop = new Properties();
String path = prop.getproperty("servPath");
And like this too
String Path = System.getProperty("servPath");
I want to tell u that this file is not in jar file,this is out of jar file that i want to load.
In both cases,it is returning null.
Its looking like i am very near.
What happening Now sir?
Regards
Yogesh
|
|
|
|
|
yogeshs wrote:
Properties prop = new Properties();
That can never work as you are creating a new Properties object which will be empty. The value will be inserted into the System.Properties and you should be able to obtain the value by
String path = System.getProperty("servPath");
which works in my test. You may want to check you are making your java call correctly like this
java -DservPath=c:\test [jar or class name ]
It's time for a new signature.
|
|
|
|
|
Hello sir
I dont know whats happening.When i print system properties then its showing mine property in list but when I am getting thru System.getProperty("servpath") giving null.
And I am setting -DservPath=c:\test\test.jar in Netbeans Project properties dialog under Run section in VM options.
I appreciate for ur time.
Regards
Yogesh
|
|
|
|
|
I use Eclipse rather than NetBeans and it works when running in the Eclipse IDE and also from the command line. However in your post above:
System.getProperty("servpath")
-DservPath=c:\test\test.jar
Do you notice the difference in the spelling between "servpath" (lower case 'p') and "servPath" (upper case 'P').
It's time for a new signature.
|
|
|
|
|
Yeah,I am aware about spelling of servpath.That is by mistake here in posting only not in my code.
Thanks & Regards
Yogesh
|
|
|
|
|
yogeshs wrote: That is by mistake here in posting only not in my code.
That's why we have Copy/Cut & Paste!
It's time for a new signature.
|
|
|
|
|
Hello Sir
I found one thing that when I enable Web Start configuration In NetBeans then it is not showing servPath but when I uncheck Enable Web Start(means default configuration) then it is showing the value of servpath.
What could be the reason?am I missing anything else?
Thanks & Regards
Yogesh
modified on Thursday, July 1, 2010 12:30 AM
|
|
|
|
|
Sorry, I have no experience of NetBeans, so I cannot suggest anything. However you mentioned Web Start, so I suspect this is not a standard Java app and perhaps the properties in Web Start are handled in a different manner.
It's time for a new signature.
|
|
|
|
|
ok,Anyway,thanks for your precious Time.
Regards
Yogesh
|
|
|
|
|
Hello Sir
Actually In Windows I am using this code to find the path of running jar file:
File ff =new File(classname.class.getProtectionDomain().getCodeSource().getLocation().getPath());
String jarFilePath = ff.toString();
Now when we hosted the site on Linux server then it is not showing the full path.Its showing only the name of jar file.
Is there way to get full path of jar that is on Linux server.
Thanks & Regards
Yogesh
|
|
|
|
|
Yogesh,
If you are talking about reading a resource from relative path with respect to current class, consider using this snippet:-
1) getClass().getResource("url") which will give you URL instance which can be used to read a resource
2) getClass().getResourceAsStream("file or any other resource") which returns an InputStream
anand in dnr
|
|
|
|
|
Hello Friends
I am creating a Executable jar file using NetBeans.In Project properties under Run I was setting -Xms1024m -Xmx1024m and it was loading file whenever i click on executable jar file.And virtual memory for c drive also setted in paging section from 1024 to 1024.
Now,I want to load a big file and this executable jar is not working.So,I increase virtual memry first to 2048 to 2048 and then in my project properties I setted to -Xms2048m -Xmx2048m but it is not loading.Do I need to make any other changes to load any big file?
Any Ideas guys.
Thanks In Advance.
Regards
Yogesh
|
|
|
|
|
First thing to do is verify what the problem is, not trying to make assumptions. Did you get an exception ? If yes, copy the stack trace here so that we can have a look. If you don't have enough memory, you should get a memory exception.
|
|
|
|
|
Hello Sir
It is giving error:
Exception in Thread :java.lang.outofmemoryerror :java heap space.
i setted virtal memory to 4096m
And in Netbeans isetted to -Xms2048m -Xmx2048m
Thanks For ur Reply
Regards
Yogesh
|
|
|
|
|
The first thing to be aware of is that if you are running under Windows, you won't be able to use much more than 1Gb of memory for your Java heap space (certainly true for 32 bit, may be different for 64 bit Windows). The reason is that the Sun JVM requires heap memory to be allocated contiguously (in other words, in one big continuous block of memory). Because of the way Windows loads DLLs into memory, Windows can't normally allocate contiguous blocks of memory bigger than roughly 1 gig (off the top of my head the figure that springs to mind is 1.2Gb but that may be wrong). You can do things like shuffling DLLs around but even then you don't get a lot more and it's probably not worth the effort. Things may be different with 64 bit Windows, I don't know because I've not worked with it very much yet. Things may also be different with other JVMs (I used to use JRockit 5 years ago with WebLogic and that was the same at the time, but I believe that now it no longer requires contiguous memory and so does not suffer from this problem.)
But I would turn this question around: what are you doing that is blowing so much memory so quickly? It sounds to me as if there is something amiss here and instead of throwing more memory at the problem, maybe you could reconsider your design?
|
|
|
|
|
Hello David Sir
Actually the design demands for this type of memory requirement.I have to load a file dynamically with initialisation whose size is around 3.5MB.
But If I load file around 1mb then its working.So to load heavy file I increased the heap space to 2048 then it is not running even thru netBeans,error comes like
Could not create the Java virtual machine.
Error occurred during initialization of VM
Could not reserve enough space for object heap
Java Result: 1
Thanks For ur reply.
Any Ideas?
Regards
Yogesh
|
|
|
|
|
Any Other Ideas Guys??????
I think i made it very confusing.let me Explain u in better way.
The Simple thing is that When I set Heap Space -Xms1024m -Xmx1024 then its working fine. But As I increased to -Xms2048m -Xmx2048 then when I try to run thru NetBeans even It gives me the Error:
run:
Error occurred during initialization of VM
Could not create the Java virtual machine.
Could not reserve enough space for object heap
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
What do i Need to change to increase Heap Space.
And If I run thru batch file in which I specify
java -Xms512m -Xmx1024m -jar sample.jar
Thanks & Regards
Yogesh
|
|
|
|
|
Re-read my earlier post. On a Win32 platform, you will not be able to allocate more than about 1.2Gb for the heap size.
Question: What do I need to change to increase heap size?
Answer: The operating system
You say that you are having a problem loading a 3.5Mb file into 1Gb of heap space. Something is not right there. What are you doing with this file that is causing it to consume so much memory?
|
|
|
|
|
Ok,i agree with u that I cant give more than 1.2gb heap size on win32 OS But When I run thru Batch file then How it load the same 3.5Mb file?
Yeah,I am reading and parsing that file.
One last Question:What is the difference between running viewer through NetBeans and Running through Directly jar file?How it loads in both way?Any Documentation or If u know tht would b much better.
Thanks & regards
Yogesh
modified on Wednesday, June 23, 2010 8:20 AM
|
|
|
|
|
What "viewer" are you talking about and what kind of file is this that you are parsing?
And are you now saying that you can load this file if you run it via a batch file as opposed to running it within NetBeans?
|
|
|
|
|
Hello Sir
Viewer is application that I created to load some 3d files(.obj files).
I think I again confused the scenario or u misunderstood.am sory for that.
Here are the Things:
Now Heap Space is set to -Xms1024m -Xmx1024m.
This one is loading each and every file If I run thru Netbeans.
If I run by directly clicking jar file then its not loading heavy file.
But If I run the same jar file with the help of batch file then it is loading heavy files too.
Now,I want to load heavy files with the click of jar file only.
Thanks & Regards
Yogesh
|
|
|
|
|
I understand now, sorry, I was a bit slow on the uptake there.
As far as I am aware, there is no way to set the heap size for executable jar files. If you run the jar by double-clicking, it will use the default heap size for the JVM and you cannot override this in the jar manifest. By the time the jar loads and the manifest is read, the JVM has started and the heap size has been allocated.
So, your options are:
- If you can live with launching via a batch file, use javaw to set the -Xms and -Xmx values and run the jar using the -jar switch (this is possibly the most usual way to do it).
- If you really must have an executable jar file that you can double click to run, create a small Java program, all that does is to set up the javaw command line with the parameters you want to invoke your main jar, then execute that via Runtime exec (which would work but it's a bit of a hack)
- If you don't like that clunky approach, write a little launcher exe in some other language (C, Python, whatever). This is another common way to do things. (I believe this is how NetBeans does it, although I might be wrong there).
- Use one of the Java to exe tools (something like launch4j). I have never used any of these, so if you go down that route I cannot advise you which is best, or what the pitfalls are.
|
|
|
|