GRASS and Java: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
No edit summary  | 
				|||
| Line 20: | Line 20: | ||
sudo apt-get install grass  //it will install the latest stable version  | sudo apt-get install grass  //it will install the latest stable version  | ||
After the installation completed you can:  | After the installation completed you can:  | ||
#Test it in the terminal without java(make sure that you have the GisDataBase installed,,):  | |||
open a terminal and enter:  | open a terminal and enter:  | ||
grass or grass64 or grass63 -text, the following the instruction in the screen.  | grass or grass64 or grass63 -text, the following the instruction in the screen.  | ||
#Test using grass command directly in the terminal:  | |||
#set the environment // the grass is installed under /usr/lib/grass64.  | ##set the environment // the grass is installed under /usr/lib/grass64.  | ||
<source lang="bash">  | |||
export GISBASE=/usr/lib/grass64  | export GISBASE=/usr/lib/grass64  | ||
export GISRC=/home/kk/gisrc  | export GISRC=/home/kk/gisrc  | ||
export ldLibraryPath=$GISBASE/lib  | export ldLibraryPath=$GISBASE/lib  | ||
export PATH=$PATH:$GISBASE/bin:$GISBASE/scripts  | export PATH=$PATH:$GISBASE/bin:$GISBASE/scripts  | ||
</source>  | |||
Then try the grass command directly, for example:  | Then try the grass command directly, for example:  | ||
<source lang="bash">  | |||
g.version  | g.version  | ||
g.gisenv  | g.gisenv  | ||
........  | ........  | ||
</source>  | |||
#Easily call grass in java if the test 2 passed.    | |||
Just use the Runtime.getRuntime.exec(String cmd,String[] env):  | Just use the Runtime.getRuntime.exec(String cmd,String[] env):  | ||
<source lang="java">  | |||
String cmd="g.version";  | String cmd="g.version";  | ||
String[] exe = { "bash", "-c", cmd };  | String[] exe = { "bash", "-c", cmd };  | ||
String[] env={"GISBASE=..","GISRC="".......}; the environment variables which you used in the    | String[] env={"GISBASE=..","GISRC="".......}; the environment variables which you used in the    | ||
Process p=Runtime.getRuntime.exec(exe,env);  | Process p=Runtime.getRuntime.exec(exe,env);  | ||
</source>  | |||
//FIXME for the format.  | //FIXME for the format.  | ||
TODO  | TODO  | ||
Revision as of 05:34, 24 March 2010
ADD MORE PLEASE
Define:
       public String run(String[] cmd)  {
       ...
                       Process p1=rt.exec(cmd, env);
and use:
       gm.run({"r.info", "map=roads"});
Examples
It seems that calling grass in java by using java.Lang.Runtime.exec() can be implemented easily in Linux platform(Tests in Ubuntu 9.10 passed yet).
First install the grass use the apt-get: sudo apt-get install grass //it will install the latest stable version After the installation completed you can:
- Test it in the terminal without java(make sure that you have the GisDataBase installed,,):
 
open a terminal and enter: grass or grass64 or grass63 -text, the following the instruction in the screen.
- Test using grass command directly in the terminal:
- set the environment // the grass is installed under /usr/lib/grass64.
 
 
export GISBASE=/usr/lib/grass64
export GISRC=/home/kk/gisrc
export ldLibraryPath=$GISBASE/lib
export PATH=$PATH:$GISBASE/bin:$GISBASE/scripts
Then try the grass command directly, for example:
g.version
g.gisenv
........
- Easily call grass in java if the test 2 passed.
 
Just use the Runtime.getRuntime.exec(String cmd,String[] env):
String cmd="g.version";
String[] exe = { "bash", "-c", cmd };
String[] env={"GISBASE=..","GISRC="".......}; the environment variables which you used in the 
Process p=Runtime.getRuntime.exec(exe,env);
//FIXME for the format. TODO