Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.framework / org.gvsig.andami / src / main / resources-application / gvSIG.sh @ 43499

History | View | Annotate | Download (16.6 KB)

1
#!/bin/bash
2
#
3
# gvSIG. Desktop Geographic Information System.
4
#
5
# Copyright (C) 2007-2013 gvSIG Association.
6
#
7
# This program is free software; you can redistribute it and/or
8
# modify it under the terms of the GNU General Public License
9
# as published by the Free Software Foundation; either version 3
10
# of the License, or (at your option) any later version.
11
#
12
# This program is distributed in the hope that it will be useful,
13
# but WITHOUT ANY WARRANTY; without even the implied warranty of
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
# GNU General Public License for more details.
16
#
17
# You should have received a copy of the GNU General Public License
18
# along with this program; if not, write to the Free Software
19
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
# MA  02110-1301, USA.
21
#
22
# For any additional information, do not hesitate to contact us
23
# at info AT gvsig.com, or visit our website www.gvsig.com.
24
#
25

    
26
# gvSIG.sh
27

    
28
#
29
# Notes:
30
# - find command in busybox (win32) don't support "-exec"
31
# - trap command in busybox (win32) don't support "trap comando ERR"
32
# - busybox (win32) don't support statement "local"
33
# - Careful with loop "while", changes in variables within the loop are
34
#   lost when you leave this.  Use "for" loops to avoid this.
35
# - busybox (win32) don't support typeset
36
#
37

    
38
#set -x
39
set -e
40

    
41
#if [ "$BASH_VERSION" = "" ] ; then
42
#    echo "gvSIG.sh is not running with a bash shell"
43
#    if type bash 2>/dev/null ; then
44
#        echo "Relaunch gvSIG.sh with a bash shell."
45
#        exec bash $@
46
#    else
47
#        echo "Can't locate a bash, continue the execution with current shell."
48
#    fi
49
#fi
50

    
51
onerror() {
52
  set +x
53
  echo "Error executing the command:"
54
  echo ">>> $BASH_COMMAND <<<"
55
  echo "At line $BASH_LINENO"
56
  exit 1
57
}
58
#trap onerror ERR
59

    
60
####################
61
# Identify OS and Architecture  #
62
####################
63

    
64
UNAME=$(uname -m -o -s | tr '[:upper:]' '[:lower:]')
65
# Use -s to identify cygwin
66
case "$UNAME" in
67
*cygwin*)
68
    OS="win"
69
    ARG_D32=""
70
    CPSEP=";"
71
    CYGWIN="yes"
72
    ;;
73
*darwin*)
74
    OS="darwin"
75
    ARG_D32=""
76
    CPSEP=":"
77
    CYGWIN="no"
78
    ;;
79
*win*)
80
    OS="win"
81
    ARG_D32=""
82
    CPSEP=";"
83
    CYGWIN="no"
84
    ;;
85
*lin*)
86
    OS="lin"
87
    # Only linux support -d32 arg
88
    ARG_D32="-d32"
89
    CPSEP=":"
90
    CYGWIN="no"
91
    ;;
92
*)
93
    OS="unknown"
94
    ARG_D32=""
95
    CPSEP=":"
96
    CYGWIN="no"
97
    ;;
98
esac
99

    
100
case "$UNAME" in
101
*x86_64*)
102
    ARCH="x86_64"
103
    ;;
104
*amd64*)
105
    ARCH="x86_64"
106
    ;;
107
*)
108
    ARCH="x86"
109
    ;;
110
esac
111

    
112
xmkdir() {
113
    mkdir $@
114
}
115

    
116
########################
117

    
118
getJavaArchitecture() {
119
	if [ "$ARCH" = "x86" ] ; then
120
                # Si la arquitectura del SO es x86 decimos
121
                # que la de java es x86
122
		echo "x86"
123
	else
124
                # si la arquitectura es x86_64, comprobamos
125
                # la arquitectura de la java que nos pasan
126
		if "$1" -version 2>&1 | egrep -i "64-Bit" >/dev/null ; then
127
			echo "x86_64"
128
		else
129
			echo "x86"
130
		fi
131
	fi
132
}
133

    
134
#################################
135
# Set install and home folders  #
136
#################################
137

    
138
# Go into the gvSIG installation folder, just in case
139
x=$(dirname "$0")
140
cd "$x"
141

    
142
if [ "$GVSIG_APPLICATION_NAME" = "" ] ; then
143
  GVSIG_APPLICATION_NAME=gvSIG
144
fi
145
export GVSIG_APPLICATION_NAME
146

    
147
# gvSIG installation and home folder
148
if [ "$CYGWIN" = "yes" ] ; then
149
  # gvSIG installation folder
150
  export GVSIG_INSTALL_FOLDER=$(./cygpath -am "$PWD")
151
  # gvSIG home folder
152
  export GVSIG_HOME_FOLDER=$(./cygpath -am "$USERPROFILE/$GVSIG_APPLICATION_NAME")
153
else
154
  # gvSIG installation folder
155
  export GVSIG_INSTALL_FOLDER="$PWD"
156
  # gvSIG home folder
157
  if [ "$OS" = "win" ] ; then
158
    # https://redmine.gvsig.net/redmine/issues/4033
159
    export GVSIG_HOME_FOLDER="$USERPROFILE/$GVSIG_APPLICATION_NAME"
160
  else
161
    export GVSIG_HOME_FOLDER="$HOME/$GVSIG_APPLICATION_NAME"
162
  fi
163
fi
164

    
165
####################
166
# Load config file #
167
####################
168

    
169
update_user_preferences() {
170
  if [ "$GVSIG_HOME_FOLDER" = "$GVSIG_INSTALL_FOLDER/preferences" ] ; then
171
    # It is a portable using the installation preferences folder as the user preferences folder.
172
    # We do not do anything.
173
    return
174
  fi
175
  if [ ! -d "$GVSIG_INSTALL_FOLDER/preferences" ] ; then
176
    # There is no installation preference folder. We do not do anything.
177
    return
178
  fi
179
  
180
  echo "Updating preferences in personal folder..."
181
  echo "This may take a moment."
182
  
183
  if [ ! -d "$GVSIG_HOME_FOLDER" ] ; then
184
    # There is no folder with the gvSIG preferences in the user's folder. 
185
    # We copy the preferences folder of the gvSIG installation.
186
    echo "Copying the default gvSIG preferences to the user's folder."
187
    xmkdir -p "$GVSIG_HOME_FOLDER"
188
    cp -a "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME" "$GVSIG_HOME_FOLDER/.."
189
    echo "Updating preferences finished."
190
    return
191
  fi
192
  # The user already has their preferences in their personal folder.
193
  # We check if we have to copy some preferences that do not have:
194
  # - Preferences of some plugin that does not have
195
  # - Missing symbols
196
  # - Scripts
197

    
198
  #
199
  # Check if some plugin preferences are missing, and copy them
200
  if [ -d  "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins" ] ; then
201
    cd "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins"
202
    for FOLDER in *
203
    do
204
      if [ -d "$FOLDER" -a ! -d "$GVSIG_HOME_FOLDER/plugins/$FOLDER" ] ; then
205
        echo "Copying the default $FOLDER preferences to the user's folder."
206
        xmkdir -p "$GVSIG_HOME_FOLDER/plugins/$FOLDER"
207
        cp -a "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/$FOLDER" "$GVSIG_HOME_FOLDER/plugins"
208
      fi
209
    done
210
  fi
211
  
212
  #
213
  # Check if any symbols are missing and copy them
214
  if [ -d "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.app.mainplugin/Symbols" ] ; then
215
    cd "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.app.mainplugin/Symbols"
216
    for FOLDER in *
217
    do
218
      if [ -d "$FOLDER" -a ! -d "$GVSIG_HOME_FOLDER/plugins/org.gvsig.app.mainplugin/Symbols/$FOLDER" ] ; then
219
        echo "Copying the default $FOLDER symbol to the user's folder."
220
        xmkdir -p "$GVSIG_HOME_FOLDER/plugins/org.gvsig.app.mainplugin/Symbols/$FOLDER"
221
        cp -a "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.app.mainplugin/Symbols/$FOLDER" "$GVSIG_HOME_FOLDER/plugins/org.gvsig.app.mainplugin/Symbols"
222
      fi
223
    done
224
  fi
225
  
226
  #
227
  # Check if any script are missing and copy them
228
  if [ -d  "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons" ] ; then
229
    cd "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons"
230
    for FOLDER in *
231
    do
232
      if [ -d "$FOLDER" -a ! -d "$GVSIG_HOME_FOLDER/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons/$FOLDER" ] ; then
233
        echo "Copying the default $FOLDER script to the user's folder."
234
        xmkdir -p "$GVSIG_HOME_FOLDER/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons/$FOLDER"
235
        cp -a "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons/$FOLDER" "$GVSIG_HOME_FOLDER/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons"
236
      fi
237
    done
238
  fi
239
  echo "Updating preferences finished."
240
}
241

    
242

    
243
if [ -f "$GVSIG_INSTALL_FOLDER/gvSIG.config" ] ; then
244
  . "$GVSIG_INSTALL_FOLDER/gvSIG.config"
245
fi
246
if [ -f "$GVSIG_HOME_FOLDER/gvSIG.config" ] ; then
247
  . "$GVSIG_HOME_FOLDER/gvSIG.config"
248
fi
249

    
250
update_user_preferences
251

    
252
if [ ! -d "$GVSIG_HOME_FOLDER" ] ; then
253
  xmkdir -p "$GVSIG_HOME_FOLDER"
254
fi
255

    
256
#################
257
# Logger config #
258
#################
259

    
260
LOGGER_FILE="$GVSIG_HOME_FOLDER/${GVSIG_APPLICATION_NAME}-launcher.log"
261
echo > "$LOGGER_FILE"
262

    
263

    
264
logger () {
265
  # level (INFO/WARNIG) message
266
  LOGGER_LEVEL="$1"
267
  shift
268
  echo "$LOGGER_LEVEL launch $@"
269
  echo "$LOGGER_LEVEL launch $@" >> "$LOGGER_FILE"
270
}
271

    
272
logger_info () {
273
  logger "INFO" "$@"
274
}
275

    
276
logger_warn () {
277
  logger "WARNING" "$@"
278
}
279

    
280
logger_cmd() {
281
  logger_info "$@"
282
  eval $@ 2>&1 | tee -a  "$LOGGER_FILE"
283
}
284

    
285
logger_info "gvSIG Installation folder: $GVSIG_INSTALL_FOLDER"
286
logger_info "gvSIG home folder: $GVSIG_HOME_FOLDER"
287

    
288
##########################################################
289
# Search in gvSIG/extensiones the architecture of plugins
290
# installeds and set as PREFERED_ARCHITECTURE
291
# Note: Busybox in windows don't support -exec in find
292
##########################################################
293

    
294
setPreferedArchitecture() {
295
  pf_foundArch=""
296
  pf_fname=""
297
  cd "$GVSIG_INSTALL_FOLDER"
298
  find . -name package.info 2>/dev/null | while read pf_fname
299
  do
300
    cat "$pf_fname"
301
  done | grep "architecture=[^a]" | sort | head -n 1 | read pf_foundArch || true
302
  # El comando "read x" de la linea anterior puede fallar si
303
  # no hay ningun plugin depdendiente de la arquitectura, por eso
304
  # el "|| true" del final.
305
  if [ "X${pf_foundArch}X" != "XX" ] ; then
306
	  eval $pf_foundArch
307
	  PREFERED_ARCHITECTURE="$architecture"
308
  else
309
	  PREFERED_ARCHITECTURE="$ARCH"
310
  fi
311
  cd - >/dev/null
312
}
313

    
314
setPreferedArchitecture
315

    
316
##########################################################
317

    
318
export JAVA_HOME
319
export JAVA
320
export FORCE_JAVA_32BITS
321

    
322
FORCE_JAVA_32BITS=""
323
JAVA_HOME_OTHER_ARCHITECTURE=""
324

    
325
# PRIVATE JAVA HOMEs
326
if [ -d "$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/jre" ] ; then
327
    PJH1="$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/jre"
328
else
329
    PJH1=
330
fi
331
#
332
# El ls|head casca en win10 64 bits. Parece que hay algun problema con los
333
# pipes y el find y el ls.
334
if [ "${OS}" == "win" ] ; then
335
  PJH2=""
336
  PJH3=""
337
  PJH4=""
338
  PJH5=""
339
else
340
  PJH2=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.8* 2>/dev/null | head -1)
341
  PJH3=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.7* 2>/dev/null | head -1)
342
  PJH4=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.6* 2>/dev/null | head -1)
343
  PJH5=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.5* 2>/dev/null | head -1)
344
fi
345
if [ -d /usr/lib/jvm ] ; then
346
    PJH6=$(find /usr/lib/jvm -maxdepth 1 ! -name "jvm" -name "[a-zA-Z]*" ! -type l -print)
347
else
348
    PJH6=
349
fi
350

    
351
if [ -f "$PJH1/bin/java" ] ; then
352
    if [ ! -x "$PJH1/bin/java" ] ; then
353
	chmod a+x "$PJH1/bin/java"
354
    fi
355
fi
356

    
357
#
358
#
359
# Try to use java from:
360
# 1. Java in gvSIG/extensiones/jre (jre plugin)
361
# 2. Java specified in JAVA_HOME variable
362
# 3. Java in the HOME/gvsig/jre folder (old gvsig versions optionally create during installation process)
363
# 4. Java installed in the system (/usr/lib/jvm)
364
# 5. Java in the system path.
365
#
366
for JAVA_HOME_TO_USE in "$PJH1" "$JAVA_HOME" "$PJH2" "$PJH3" "$PJH4" "$PJH5" $PJH6 ""
367
do
368
  if [ "$JAVA_HOME_TO_USE" = "" ] ; then
369
	  continue
370
  fi
371
  logger_info "Located possible jre at: ${JAVA_HOME_TO_USE}"
372
done
373

    
374
for JAVA_HOME_TO_USE in "$PJH1" "$JAVA_HOME" "$PJH2" "$PJH3" "$PJH4" "$PJH5" $PJH6 ""
375
do
376
        if [ "$JAVA_HOME_TO_USE" = "" ] ; then
377
                continue
378
        fi
379
	logger_info "Checking JAVA_HOME ${JAVA_HOME_TO_USE}..."
380
        if [ ! -d "$JAVA_HOME_TO_USE" ] ; then
381
                logger_warn "Folder not found ($JAVA_HOME_TO_USE), skip"
382
                continue
383
        fi
384
        if [ ! -x "$JAVA_HOME_TO_USE/bin/java" ] ; then
385
                logger_warn "Not a valid JAVA_HOME ($JAVA_HOME_TO_USE), bin/java not found, skip"
386
                continue
387
        fi
388
	JAVA_ARCH=$(getJavaArchitecture "$JAVA_HOME_TO_USE/bin/java")
389
	if [ "$JAVA_ARCH" != "$PREFERED_ARCHITECTURE" ] ; then
390
                JAVA_HOME_OTHER_ARCHITECTURE="$JAVA_HOME_TO_USE"
391
                logger_warn "Prefered architecture is $PREFERED_ARCHITECTURE, java $JAVA_ARCH found in $JAVA_HOME_TO_USE, skip"
392
                continue
393
        fi
394
        break
395
done
396

    
397
if [ "$JAVA_HOME_TO_USE" = "" ] ; then
398
        # Try to use the java in the system path
399
        if ! type java >/dev/null ; then
400
                # java not found in the system path
401
                if [ "$JAVA_HOME_OTHER_ARCHITECTURE" != "" ] ; then
402
                        JAVA_HOME="$JAVA_HOME_OTHER_ARCHITECTURE"
403
                        JAVA="$JAVA_HOME/bin/java"
404
                        logger_warn "java $PREFERED_ARCHITECTURE not found in the system path, using $JAVA_HOME_OTHER_ARCHITECTURE"
405
                else
406
                        logger_warn "java not found in the system"
407
                        exit 1
408
                fi
409
        else
410
		if [ "$(getJavaArchitecture $(type -p java))" != "$PREFERED_ARCHITECTURE" ] ; then
411
                      logger_warn "java $PREFERED_ARCHITECTURE not found, using $(type -p java)"
412
                fi
413
                unset JAVA_HOME
414
                JAVA="java"
415
        fi
416
else
417
        JAVA_HOME="$JAVA_HOME_TO_USE"
418
        JAVA="$JAVA_HOME/bin/java"
419
fi
420

    
421
if [ "$PREFERED_ARCHITECTURE" = "x86" ] ; then
422
	FORCE_JAVA_32BITS="$ARG_D32"
423
else
424
	FORCE_JAVA_32BITS=""
425

    
426
fi
427
logger_info "Using java " $(type -p "$JAVA")
428

    
429
###################################################################
430
# gvSIG native libraries location
431
###################################################################
432

    
433
export GVSIG_NATIVE_LIBS=""
434
export LD_LIBRARY_PATH
435
export DYLD_LIBRARY_PATH
436
export PATH
437
export GVSIG_PROPERTIES=""
438

    
439
add_library_path() {
440
  #logger_info "add_library_path $1"
441
  GVSIG_NATIVE_LIBS="$1${CPSEP}$GVSIG_NATIVE_LIBS"
442

    
443
  # On Linux family systems
444
  LD_LIBRARY_PATH="$1${CPSEP}$LD_LIBRARY_PATH"
445
  # On Darwin family systems
446
  DYLD_LIBRARY_PATH="$1${CPSEP}$DYLD_LIBRARY_PATH"
447
  # On Windows family systems
448
  if [ "$CYGWIN" = "yes" ] ; then
449
    PATH="/cygdrive/${1/:/}:$PATH"
450
  else
451
    PATH="$1${CPSEP}$PATH"
452
  fi
453

    
454
}
455

    
456
list_shared_library_dependencies() {
457
  logger_info "Checking shared library dependencies for $1"
458
  case "$OS" in
459
  "win")
460
        logger_cmd ./cygcheck.exe "\"$1\""
461
        ;;
462
  "lin")
463
        logger_cmd ldd "\"$1\""
464
        ;;
465
  "darwin")
466
        logger_cmd otool -L "\"$1\""
467
        ;;
468
  esac || logger_warn "Problens checking shared library $1"  || true
469
}
470

    
471
add_classpath() {
472
  GVSIG_CLASSPATH="$GVSIG_CLASSPATH${CPSEP}$1"
473
}
474

    
475
add_property() {
476
  value="\"$2\""
477
  GVSIG_PROPERTIES="$GVSIG_PROPERTIES -D$1=$value"
478
}
479

    
480

    
481
###################################################################
482
# gvSIG java libraries location
483
###################################################################
484

    
485
# Load gvSIG Andami jars and dependencies for the classpath
486
for i in "$GVSIG_INSTALL_FOLDER/lib/"*.jar ; do
487
  if [ "$i" != "$GVSIG_INSTALL_FOLDER/lib/*.jar" -a "$i" != "" ]; then
488
    add_classpath "$i"
489
  fi
490
done
491
for i in "$GVSIG_INSTALL_FOLDER/lib/"*.zip ; do
492
  if [ "$i" != "$GVSIG_INSTALL_FOLDER/lib/*.zip" -a "$i" != "" ]; then
493
    add_classpath "$i"
494
  fi
495
done
496

    
497
# gvSIG Andami launcher
498

    
499
if [ "$GVSIG_LAUNCHER" = "" ] ; then
500
  GVSIG_LAUNCHER=org.gvsig.andamiupdater.Updater
501
fi
502
if [ "$GVSIG_PARAMS" = "" ] ; then
503
  GVSIG_PARAMS="$GVSIG_APPLICATION_NAME gvSIG/extensiones $@"
504
fi
505

    
506
export GVSIG_LAUNCHER
507
export GVSIG_PARAMS
508

    
509
########################
510
# Memory configuration #
511
########################
512

    
513
# Initial gvSIG memory (M=Megabytes, G=Gigabytes)
514
export GVSIG_INITIAL_MEM=${GVSIG_INITIAL_MEM:-256M}
515
# Maximum gvSIG memory (M=Megabytes, G=Gigabytes)
516
export GVSIG_MAX_MEM=${GVSIG_MAX_MEM:-1024M}
517
# Maximum permanent memory size: needed to load classes and statics
518
# A partir de java 1.8 ya no esta soportada esta opcion
519
#export GVSIG_MAX_PERM_SIZE=${GVSIG_MAX_PERM_SIZE:-128M}
520
#  -XX:MaxPermSize=${GVSIG_MAX_PERM_SIZE} 
521
#
522

    
523

    
524
#############################
525
# Execute plugin's autorun  #
526
#############################
527

    
528
for PLUGIN_FOLDER in "$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/"*
529
do
530
  if [ -f "$PLUGIN_FOLDER/autorun.sh" ] ; then
531
    logger_info "Running autorun from plugin " $(basename "$PLUGIN_FOLDER")
532
    . "$PLUGIN_FOLDER/autorun.sh"
533
    cd "$GVSIG_INSTALL_FOLDER"
534
  fi
535
done
536

    
537
if [ "$OS" = "win" ] ; then
538
	add_library_path "$GVSIG_INSTALL_FOLDER"
539
fi
540

    
541
logger_info "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
542
logger_info "PATH=$PATH"
543

    
544
#####################
545
# Java debug mode ? #
546
#####################
547

    
548
ARGS="$@" # Can't use ${@/ , use ${ARGS/ instead
549
if [ "${ARGS/*--pause*/--pause}" == "--pause" ] ; then
550
    DEBUG_PAUSE="y"
551
else
552
    DEBUG_PAUSE="n"
553
fi
554

    
555
if [ "${ARGS/*--debug*/--debug}" == "--debug" ] ; then
556
  DEBUG_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=8765,server=y,suspend=$DEBUG_PAUSE"
557
else
558
  DEBUG_OPTIONS=""
559
fi
560

    
561
########################
562
# Remove old log files #
563
########################
564

    
565
rm -f "${GVSIG_HOME_FOLDER}/gvSIG.log"*
566

    
567
################
568
# Launch gvSIG #
569
################
570

    
571
# For Java parameters documentation and more parameters look at:
572
# http://download.oracle.com/javase/6/docs/technotes/tools/windows/java.html
573
# http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
574
CMD="\"${JAVA}\" \
575
  $FORCE_JAVA_32BITS \
576
  -Xms${GVSIG_INITIAL_MEM} \
577
  -Xmx${GVSIG_MAX_MEM} \
578
  ${DEBUG_OPTIONS} \
579
  -Djava.library.path=\"${GVSIG_NATIVE_LIBS}\" \
580
  ${GVSIG_PROPERTIES} \
581
  -cp \"${GVSIG_CLASSPATH}\" \
582
  ${GVSIG_JAVA_PARAMS} \
583
  ${GVSIG_LAUNCHER} ${GVSIG_PARAMS}"
584

    
585
logger_info Launching gvSIG: "${CMD}"
586
eval "$CMD"