GRASS and Java: Difference between revisions
Jump to navigation
Jump to search
(prettified; still incomplete) |
|||
Line 1: | Line 1: | ||
''ADD MORE PLEASE'' | ''ADD MORE PLEASE'' | ||
Calling GRASS from JAVA: | |||
Define: | Define: | ||
Line 13: | Line 15: | ||
</source> | </source> | ||
=== Examples === | |||
It seems that calling grass in | ==== Installation ==== | ||
It seems that calling grass in JAVA by using <tt>java.Lang.Runtime.exec()</tt> can be implemented easily in Linux platform (tested successfully on Ubuntu 9.10). | |||
First install the grass use the apt-get: | First install the grass use the apt-get: | ||
sudo apt-get install grass | |||
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 using | #Test it in the terminal without JAVA (make sure that you have a GRASS database installed): | ||
Open a terminal and enter: | |||
grass64 | |||
The following the instruction in the screen or check [http://trac.osgeo.org/grass/wiki/HowToTestGrass6 here]. | |||
==== Test the environment settings ==== | |||
Test using GRASS command directly in the terminal: | |||
Set the environment (we assume GRASS being installed under /usr/lib/grass64): | |||
<source lang="bash"> | <source lang="bash"> | ||
export GISBASE=/usr/lib/grass64 | export GISBASE=/usr/lib/grass64 | ||
export GISRC=/home/kk/gisrc | export GISRC=/home/kk/gisrc | ||
export | export LD_LIBRARY_PATH=$GISBASE/lib | ||
export PATH=$PATH:$GISBASE/bin:$GISBASE/scripts | export PATH=$PATH:$GISBASE/bin:$GISBASE/scripts | ||
</source> | </source> | ||
Then try | Then try some GRASS command directly, for example: | ||
<source lang="bash"> | <source lang="bash"> | ||
g.version | g.version | ||
g.gisenv | g.gisenv | ||
... | |||
</source> | </source> | ||
Now call GRASS in JAVA if the above test 2 passed. | |||
Just use the Runtime.getRuntime.exec(String cmd,String[] env): | |||
Just use the <tt>Runtime.getRuntime.exec(String cmd,String[] env)</tt>: | |||
<source lang="java"> | <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); | |||
</source> | </source> | ||
[[Category:Development]] | [[Category:Development]] | ||
[[Category:Linking to other languages]] | [[Category:Linking to other languages]] | ||
[[Category:Java]] | [[Category:Java]] |
Revision as of 07:52, 24 March 2010
ADD MORE PLEASE
Calling GRASS from JAVA:
Define:
public String run(String[] cmd) {
...
Process p1=rt.exec(cmd, env);
and use:
gm.run({"r.info", "map=roads"});
Examples
Installation
It seems that calling grass in JAVA by using java.Lang.Runtime.exec() can be implemented easily in Linux platform (tested successfully on Ubuntu 9.10).
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 a GRASS database installed):
Open a terminal and enter:
grass64
The following the instruction in the screen or check here.
Test the environment settings
Test using GRASS command directly in the terminal:
Set the environment (we assume GRASS being installed under /usr/lib/grass64):
export GISBASE=/usr/lib/grass64
export GISRC=/home/kk/gisrc
export LD_LIBRARY_PATH=$GISBASE/lib
export PATH=$PATH:$GISBASE/bin:$GISBASE/scripts
Then try some GRASS command directly, for example:
g.version
g.gisenv
...
Now call GRASS in JAVA if the above 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);