Statistics
| Revision:

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

History | View | Annotate | Download (16.5 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
if [ "${OS}" == "win" ] ; then
113
  xmkdir() {
114
    if [ "$1" == "-p" ] ; then
115
      if [ "${2:1:2}" == ":/" ] ; then
116
	cd "${2:0:3}"
117
	if mkdir -p "${2:3}" ; then
118
	  cd - >/dev/null
119
	else
120
	  cd - >/dev/null
121
	  false
122
	fi
123
      else
124
	mkdir -p "$2"
125
      fi
126
    else
127
      mkdir "$1"
128
    fi
129
  }
130
else
131
  xmkdir() {
132
    if [ "$1" == "-p" ] ; then
133
      mkdir -p "$2"
134
    else
135
      mkdir "$1"
136
    fi
137
  }
138
fi
139

    
140
########################
141

    
142
getJavaArchitecture() {
143
	if [ "$ARCH" = "x86" ] ; then
144
                # Si la arquitectura del SO es x86 decimos
145
                # que la de java es x86
146
		echo "x86"
147
	else
148
                # si la arquitectura es x86_64, comprobamos
149
                # la arquitectura de la java que nos pasan
150
		if "$1" -version 2>&1 | egrep -i "64-Bit" >/dev/null ; then
151
			echo "x86_64"
152
		else
153
			echo "x86"
154
		fi
155
	fi
156
}
157

    
158
#################################
159
# Set install and home folders  #
160
#################################
161

    
162
# Go into the gvSIG installation folder, just in case
163
x=$(dirname "$0")
164
cd "$x"
165

    
166
if [ "$GVSIG_APPLICATION_NAME" = "" ] ; then
167
  GVSIG_APPLICATION_NAME=gvSIG
168
fi
169
export GVSIG_APPLICATION_NAME
170

    
171
# gvSIG installation and home folder
172
if [ "$CYGWIN" = "yes" ] ; then
173
  # gvSIG installation folder
174
  export GVSIG_INSTALL_FOLDER=$(./cygpath -am "$PWD")
175
  # gvSIG home folder
176
  export GVSIG_HOME_FOLDER=$(./cygpath -am "$USERPROFILE/$GVSIG_APPLICATION_NAME")
177
else
178
  # gvSIG installation folder
179
  export GVSIG_INSTALL_FOLDER="$PWD"
180
  # gvSIG home folder
181
  if [ "$OS" = "win" ] ; then
182
    # https://redmine.gvsig.net/redmine/issues/4033
183
    export GVSIG_HOME_FOLDER="$USERPROFILE/$GVSIG_APPLICATION_NAME"
184
  else
185
    export GVSIG_HOME_FOLDER="$HOME/$GVSIG_APPLICATION_NAME"
186
  fi
187
fi
188

    
189
####################
190
# Load config file #
191
####################
192

    
193
update_user_preferences() {
194
  if [ "$GVSIG_HOME_FOLDER" = "$GVSIG_INSTALL_FOLDER/preferences" ] ; then
195
    # It is a portable using the installation preferences folder as the user preferences folder.
196
    # We do not do anything.
197
    return
198
  fi
199
  if [ ! -d "$GVSIG_INSTALL_FOLDER/preferences" ] ; then
200
    # There is no installation preference folder. We do not do anything.
201
    return
202
  fi
203
  
204
  echo "Updating preferences in personal folder..."
205
  echo "This may take a moment."
206
  
207
  if [ ! -d "$GVSIG_HOME_FOLDER" ] ; then
208
    # There is no folder with the gvSIG preferences in the user's folder. 
209
    # We copy the preferences folder of the gvSIG installation.
210
    echo "Copying the default gvSIG preferences to the user's folder."
211
    xmkdir -p "$GVSIG_HOME_FOLDER"
212
    cp -a "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME" "$GVSIG_HOME_FOLDER/.."
213
    echo "Updating preferences finished."
214
    return
215
  fi
216
  # The user already has their preferences in their personal folder.
217
  # We check if we have to copy some preferences that do not have:
218
  # - Preferences of some plugin that does not have
219
  # - Missing symbols
220
  # - Scripts
221

    
222
  #
223
  # Check if some plugin preferences are missing, and copy them
224
  cd "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins"
225
  for FOLDER in *
226
  do
227
    if [ -d "$FOLDER" -a ! -d "$GVSIG_HOME_FOLDER/plugins/$FOLDER" ] ; then
228
      echo "Copying the default $FOLDER preferences to the user's folder."
229
      xmkdir -p "$GVSIG_HOME_FOLDER/plugins/$FOLDER"
230
      cp -a "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/$FOLDER" "$GVSIG_HOME_FOLDER/plugins"
231
    fi
232
  done
233
  
234
  #
235
  # Check if any symbols are missing and copy them
236
  cd "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.app.mainplugin/Symbols"
237
  for FOLDER in *
238
  do
239
    if [ -d "$FOLDER" -a ! -d "$GVSIG_HOME_FOLDER/plugins/org.gvsig.app.mainplugin/Symbols/$FOLDER" ] ; then
240
      echo "Copying the default $FOLDER symbol to the user's folder."
241
      xmkdir -p "$GVSIG_HOME_FOLDER/plugins/org.gvsig.app.mainplugin/Symbols/$FOLDER"
242
      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"
243
    fi
244
  done
245
  
246
  #
247
  # Check if any script are missing and copy them
248
  cd "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons"
249
  for FOLDER in *
250
  do
251
    if [ -d "$FOLDER" -a ! -d "$GVSIG_HOME_FOLDER/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons/$FOLDER" ] ; then
252
      echo "Copying the default $FOLDER script to the user's folder."
253
      xmkdir -p "$GVSIG_HOME_FOLDER/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons/$FOLDER"
254
      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"
255
    fi
256
  done
257

    
258
  echo "Updating preferences finished."
259
}
260

    
261

    
262
if [ -f "$GVSIG_INSTALL_FOLDER/gvSIG.config" ] ; then
263
  . "$GVSIG_INSTALL_FOLDER/gvSIG.config"
264
fi
265
if [ -f "$GVSIG_HOME_FOLDER/gvSIG.config" ] ; then
266
  . "$GVSIG_HOME_FOLDER/gvSIG.config"
267
fi
268

    
269
update_user_preferences
270

    
271
if [ ! -d "$GVSIG_HOME_FOLDER" ] ; then
272
  xmkdir -p "$GVSIG_HOME_FOLDER"
273
fi
274

    
275
#################
276
# Logger config #
277
#################
278

    
279
LOGGER_FILE="$GVSIG_HOME_FOLDER/${GVSIG_APPLICATION_NAME}-launcher.log"
280
echo > "$LOGGER_FILE"
281

    
282

    
283
logger () {
284
  # level (INFO/WARNIG) message
285
  LOGGER_LEVEL="$1"
286
  shift
287
  echo "$LOGGER_LEVEL launch $@"
288
  echo "$LOGGER_LEVEL launch $@" >> "$LOGGER_FILE"
289
}
290

    
291
logger_info () {
292
  logger "INFO" "$@"
293
}
294

    
295
logger_warn () {
296
  logger "WARNING" "$@"
297
}
298

    
299
logger_cmd() {
300
  logger_info "$@"
301
  eval $@ 2>&1 | tee -a  "$LOGGER_FILE"
302
}
303

    
304
logger_info "gvSIG Installation folder: $GVSIG_INSTALL_FOLDER"
305
logger_info "gvSIG home folder: $GVSIG_HOME_FOLDER"
306

    
307
##########################################################
308
# Search in gvSIG/extensiones the architecture of plugins
309
# installeds and set as PREFERED_ARCHITECTURE
310
# Note: Busybox in windows don't support -exec in find
311
##########################################################
312

    
313
setPreferedArchitecture() {
314
  pf_foundArch=""
315
  pf_fname=""
316
  cd "$GVSIG_INSTALL_FOLDER"
317
  find . -name package.info 2>/dev/null | while read pf_fname
318
  do
319
    cat "$pf_fname"
320
  done | grep "architecture=[^a]" | sort | head -n 1 | read pf_foundArch || true
321
  # El comando "read x" de la linea anterior puede fallar si
322
  # no hay ningun plugin depdendiente de la arquitectura, por eso
323
  # el "|| true" del final.
324
  if [ "X${pf_foundArch}X" != "XX" ] ; then
325
	  eval $pf_foundArch
326
	  PREFERED_ARCHITECTURE="$architecture"
327
  else
328
	  PREFERED_ARCHITECTURE="$ARCH"
329
  fi
330
  cd - >/dev/null
331
}
332

    
333
setPreferedArchitecture
334

    
335
##########################################################
336

    
337
export JAVA_HOME
338
export JAVA
339
export FORCE_JAVA_32BITS
340

    
341
FORCE_JAVA_32BITS=""
342
JAVA_HOME_OTHER_ARCHITECTURE=""
343

    
344
# PRIVATE JAVA HOMEs
345
if [ -d "$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/jre" ] ; then
346
    PJH1="$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/jre"
347
else
348
    PJH1=
349
fi
350
#
351
# El ls|head casca en win10 64 bits. Parece que hay algun problema con los
352
# pipes y el find y el ls.
353
if [ "${OS}" == "win" ] ; then
354
  PJH2=""
355
  PJH3=""
356
  PJH4=""
357
  PJH5=""
358
else
359
  PJH2=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.8* 2>/dev/null | head -1)
360
  PJH3=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.7* 2>/dev/null | head -1)
361
  PJH4=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.6* 2>/dev/null | head -1)
362
  PJH5=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.5* 2>/dev/null | head -1)
363
fi
364
if [ -d /usr/lib/jvm ] ; then
365
    PJH6=$(find /usr/lib/jvm -maxdepth 1 ! -name "jvm" -name "[a-zA-Z]*" ! -type l -print)
366
else
367
    PJH6=
368
fi
369

    
370
if [ -f "$PJH1/bin/java" ] ; then
371
    if [ ! -x "$PJH1/bin/java" ] ; then
372
	chmod a+x "$PJH1/bin/java"
373
    fi
374
fi
375

    
376
#
377
#
378
# Try to use java from:
379
# 1. Java in gvSIG/extensiones/jre (jre plugin)
380
# 2. Java specified in JAVA_HOME variable
381
# 3. Java in the HOME/gvsig/jre folder (old gvsig versions optionally create during installation process)
382
# 4. Java installed in the system (/usr/lib/jvm)
383
# 5. Java in the system path.
384
#
385
for JAVA_HOME_TO_USE in "$PJH1" "$JAVA_HOME" "$PJH2" "$PJH3" "$PJH4" "$PJH5" $PJH6 ""
386
do
387
  if [ "$JAVA_HOME_TO_USE" = "" ] ; then
388
	  continue
389
  fi
390
  logger_info "Located possible jre at: ${JAVA_HOME_TO_USE}"
391
done
392

    
393
for JAVA_HOME_TO_USE in "$PJH1" "$JAVA_HOME" "$PJH2" "$PJH3" "$PJH4" "$PJH5" $PJH6 ""
394
do
395
        if [ "$JAVA_HOME_TO_USE" = "" ] ; then
396
                continue
397
        fi
398
	logger_info "Checking JAVA_HOME ${JAVA_HOME_TO_USE}..."
399
        if [ ! -d "$JAVA_HOME_TO_USE" ] ; then
400
                logger_warn "Folder not found ($JAVA_HOME_TO_USE), skip"
401
                continue
402
        fi
403
        if [ ! -x "$JAVA_HOME_TO_USE/bin/java" ] ; then
404
                logger_warn "Not a valid JAVA_HOME ($JAVA_HOME_TO_USE), bin/java not found, skip"
405
                continue
406
        fi
407
	JAVA_ARCH=$(getJavaArchitecture "$JAVA_HOME_TO_USE/bin/java")
408
	if [ "$JAVA_ARCH" != "$PREFERED_ARCHITECTURE" ] ; then
409
                JAVA_HOME_OTHER_ARCHITECTURE="$JAVA_HOME_TO_USE"
410
                logger_warn "Prefered architecture is $PREFERED_ARCHITECTURE, java $JAVA_ARCH found in $JAVA_HOME_TO_USE, skip"
411
                continue
412
        fi
413
        break
414
done
415

    
416
if [ "$JAVA_HOME_TO_USE" = "" ] ; then
417
        # Try to use the java in the system path
418
        if ! type java >/dev/null ; then
419
                # java not found in the system path
420
                if [ "$JAVA_HOME_OTHER_ARCHITECTURE" != "" ] ; then
421
                        JAVA_HOME="$JAVA_HOME_OTHER_ARCHITECTURE"
422
                        JAVA="$JAVA_HOME/bin/java"
423
                        logger_warn "java $PREFERED_ARCHITECTURE not found in the system path, using $JAVA_HOME_OTHER_ARCHITECTURE"
424
                else
425
                        logger_warn "java not found in the system"
426
                        exit 1
427
                fi
428
        else
429
		if [ "$(getJavaArchitecture $(type -p java))" != "$PREFERED_ARCHITECTURE" ] ; then
430
                      logger_warn "java $PREFERED_ARCHITECTURE not found, using $(type -p java)"
431
                fi
432
                unset JAVA_HOME
433
                JAVA="java"
434
        fi
435
else
436
        JAVA_HOME="$JAVA_HOME_TO_USE"
437
        JAVA="$JAVA_HOME/bin/java"
438
fi
439

    
440
if [ "$PREFERED_ARCHITECTURE" = "x86" ] ; then
441
	FORCE_JAVA_32BITS="$ARG_D32"
442
else
443
	FORCE_JAVA_32BITS=""
444

    
445
fi
446
logger_info "Using java " $(type -p "$JAVA")
447

    
448
###################################################################
449
# gvSIG native libraries location
450
###################################################################
451

    
452
export GVSIG_NATIVE_LIBS=""
453
export LD_LIBRARY_PATH
454
export DYLD_LIBRARY_PATH
455
export PATH
456
export GVSIG_PROPERTIES=""
457

    
458
add_library_path() {
459
  #logger_info "add_library_path $1"
460
  GVSIG_NATIVE_LIBS="$1${CPSEP}$GVSIG_NATIVE_LIBS"
461

    
462
  # On Linux family systems
463
  LD_LIBRARY_PATH="$1${CPSEP}$LD_LIBRARY_PATH"
464
  # On Darwin family systems
465
  DYLD_LIBRARY_PATH="$1${CPSEP}$DYLD_LIBRARY_PATH"
466
  # On Windows family systems
467
  if [ "$CYGWIN" = "yes" ] ; then
468
    PATH="/cygdrive/${1/:/}:$PATH"
469
  else
470
    PATH="$1${CPSEP}$PATH"
471
  fi
472

    
473
}
474

    
475
list_shared_library_dependencies() {
476
  logger_info "Checking shared library dependencies for $1"
477
  case "$OS" in
478
  "win")
479
        logger_cmd ./cygcheck.exe "\"$1\""
480
        ;;
481
  "lin")
482
        logger_cmd ldd "\"$1\""
483
        ;;
484
  "darwin")
485
        logger_cmd otool -L "\"$1\""
486
        ;;
487
  esac || logger_warn "Problens checking shared library $1"  || true
488
}
489

    
490
add_classpath() {
491
  GVSIG_CLASSPATH="$GVSIG_CLASSPATH${CPSEP}$1"
492
}
493

    
494
add_property() {
495
  value="\"$2\""
496
  GVSIG_PROPERTIES="$GVSIG_PROPERTIES -D$1=$value"
497
}
498

    
499

    
500
###################################################################
501
# gvSIG java libraries location
502
###################################################################
503

    
504
# Load gvSIG Andami jars and dependencies for the classpath
505
for i in "$GVSIG_INSTALL_FOLDER/lib/"*.jar ; do
506
  if [ "$i" != "$GVSIG_INSTALL_FOLDER/lib/*.jar" -a "$i" != "" ]; then
507
    add_classpath "$i"
508
  fi
509
done
510
for i in "$GVSIG_INSTALL_FOLDER/lib/"*.zip ; do
511
  if [ "$i" != "$GVSIG_INSTALL_FOLDER/lib/*.zip" -a "$i" != "" ]; then
512
    add_classpath "$i"
513
  fi
514
done
515

    
516
# gvSIG Andami launcher
517

    
518
if [ "$GVSIG_LAUNCHER" = "" ] ; then
519
  GVSIG_LAUNCHER=org.gvsig.andamiupdater.Updater
520
fi
521
if [ "$GVSIG_PARAMS" = "" ] ; then
522
  GVSIG_PARAMS="$GVSIG_APPLICATION_NAME gvSIG/extensiones $@"
523
fi
524

    
525
export GVSIG_LAUNCHER
526
export GVSIG_PARAMS
527

    
528
########################
529
# Memory configuration #
530
########################
531

    
532
# Initial gvSIG memory (M=Megabytes, G=Gigabytes)
533
export GVSIG_INITIAL_MEM=${GVSIG_INITIAL_MEM:-256M}
534
# Maximum gvSIG memory (M=Megabytes, G=Gigabytes)
535
export GVSIG_MAX_MEM=${GVSIG_MAX_MEM:-1024M}
536
# Maximum permanent memory size: needed to load classes and statics
537
# A partir de java 1.8 ya no esta soportada esta opcion
538
#export GVSIG_MAX_PERM_SIZE=${GVSIG_MAX_PERM_SIZE:-128M}
539
#  -XX:MaxPermSize=${GVSIG_MAX_PERM_SIZE} 
540
#
541

    
542

    
543
#############################
544
# Execute plugin's autorun  #
545
#############################
546

    
547
for PLUGIN_FOLDER in "$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/"*
548
do
549
  if [ -f "$PLUGIN_FOLDER/autorun.sh" ] ; then
550
    logger_info "Running autorun from plugin " $(basename "$PLUGIN_FOLDER")
551
    . "$PLUGIN_FOLDER/autorun.sh"
552
    cd "$GVSIG_INSTALL_FOLDER"
553
  fi
554
done
555

    
556
if [ "$OS" = "win" ] ; then
557
	add_library_path "$GVSIG_INSTALL_FOLDER"
558
fi
559

    
560
logger_info "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
561
logger_info "PATH=$PATH"
562

    
563
#####################
564
# Java debug mode ? #
565
#####################
566

    
567
ARGS="$@" # Can't use ${@/ , use ${ARGS/ instead
568
if [ "${ARGS/*--pause*/--pause}" == "--pause" ] ; then
569
    DEBUG_PAUSE="y"
570
else
571
    DEBUG_PAUSE="n"
572
fi
573

    
574
if [ "${ARGS/*--debug*/--debug}" == "--debug" ] ; then
575
  DEBUG_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=8765,server=y,suspend=$DEBUG_PAUSE"
576
else
577
  DEBUG_OPTIONS=""
578
fi
579

    
580
########################
581
# Remove old log files #
582
########################
583

    
584
rm -f "${GVSIG_HOME_FOLDER}/gvSIG.log"*
585

    
586
################
587
# Launch gvSIG #
588
################
589

    
590
# For Java parameters documentation and more parameters look at:
591
# http://download.oracle.com/javase/6/docs/technotes/tools/windows/java.html
592
# http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
593
CMD="\"${JAVA}\" \
594
  $FORCE_JAVA_32BITS \
595
  -Xms${GVSIG_INITIAL_MEM} \
596
  -Xmx${GVSIG_MAX_MEM} \
597
  ${DEBUG_OPTIONS} \
598
  -Djava.library.path=\"${GVSIG_NATIVE_LIBS}\" \
599
  ${GVSIG_PROPERTIES} \
600
  -cp \"${GVSIG_CLASSPATH}\" \
601
  ${GVSIG_JAVA_PARAMS} \
602
  ${GVSIG_LAUNCHER} ${GVSIG_PARAMS}"
603

    
604
logger_info Launching gvSIG: "${CMD}"
605
eval "$CMD"