Linux download

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Linux download

Jarek Lipski
Hello,

Why ImageJ Linux version without Java runtime is not provided? Most of
current Linux distributions provide Sun Java, as it is now Open Source.
I downloaded ImageJ, removed jre/ subdirectory and modified run script
to use default system java ("java -Xmx512m -jar ij.jar"), and it's
working fine.

Best regards,
Jarek
Reply | Threaded
Open this post in threaded view
|

Re: Linux download

Thomas Boudier
Hi Jarek,

You can use the "Generic" download if you already have java.

Thomas

> Hello,
>
> Why ImageJ Linux version without Java runtime is not provided? Most of
> current Linux distributions provide Sun Java, as it is now Open Source.
> I downloaded ImageJ, removed jre/ subdirectory and modified run script
> to use default system java ("java -Xmx512m -jar ij.jar"), and it's
> working fine.
>
> Best regards,
> Jarek
>
>
>  


--
/*****************************************************/
   Thomas Boudier, MCU Université Paris 6,
   UMR 7101 / IFR 83. Bat A 328, Jussieu.
   Tel : 0144273578/2013  Fax : 01 44 27 25 08
/****************************************************/
Reply | Threaded
Open this post in threaded view
|

Re: Linux download

Paolo Ariano
In reply to this post by Jarek Lipski
Il giorno ven, 12/09/2008 alle 10.19 +0200, Jarek Lipski ha scritto:
> Hello,
>
> Why ImageJ Linux version without Java runtime is not provided?

just download from :

http://rsbweb.nih.gov/ij/download/zips/ij140.zip

or if you have a debian/ubuntu .deb dased distribution:

aptitude install imagej

till next
paolo

--
NeuroScience PhD
Post-doc @ University of Torino
www.personalweb.unito.it/paolo.ariano
www.cellular-neurophysiology.unito.it
www.mieleria.it
Reply | Threaded
Open this post in threaded view
|

Re: Linux download

Jarek Lipski
In reply to this post by Thomas Boudier
Hi Thomas,

Ok, You're right, I haven't noticed it.. Sorry for stupid question.

In the meantime I discovered a little problem in run script on unix-like
systems. The script looks like this:
java -Xmx512m -jar ij.jar

It works only if it is executed from ImageJ directory, and it is harder
to run ImageJ from graphical menu using a launcher (as described in
installation instruction
http://rsbweb.nih.gov/ij/docs/install/linux.html#launcher).

Maybe the generic run script could be modified to something like this,
to locate the jar file automatically:

#!/bin/sh
SCRIPT_DIR=`dirname $0`
java -Xmx512m -jar $SCRIPT_DIR/ij.jar

To simplify running / creating laucher (it will not require any text
console activity)?

Best regards,
Jarek


Thomas Boudier pisze:

> Hi Jarek,
>
> You can use the "Generic" download if you already have java.
>
> Thomas
>
>> Hello,
>>
>> Why ImageJ Linux version without Java runtime is not provided? Most of
>> current Linux distributions provide Sun Java, as it is now Open Source.
>> I downloaded ImageJ, removed jre/ subdirectory and modified run script
>> to use default system java ("java -Xmx512m -jar ij.jar"), and it's
>> working fine.
>>
>> Best regards,
>> Jarek
>>
>>
>>  
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Linux download

Albert Cardona
> In the meantime I discovered a little problem in run script on unix-like
> systems. The script looks like this:
> java -Xmx512m -jar ij.jar
>
> It works only if it is executed from ImageJ directory, and it is harder
> to run ImageJ from graphical menu using a launcher (as described in
> installation instruction
> http://rsbweb.nih.gov/ij/docs/install/linux.html#launcher).
>
> Maybe the generic run script could be modified to something like this,
> to locate the jar file automatically:
>
> #!/bin/sh
> SCRIPT_DIR=`dirname $0`
> java -Xmx512m -jar $SCRIPT_DIR/ij.jar
>
> To simplify running / creating laucher (it will not require any text
> console activity)?
>  


The above is *wrong*, because it won't set the working directory to the
directory where the plugins are. So no plugins will be found. You should
add a -Dplugins.dir=/blablabla entry, or symply 'cd' to that directory
before launching the JVM.

Try this instead:

#!/bin/sh
cd `dirname $0`
java -Xmx512m -jar ij.jar



Albert

--
Albert Cardona
http://www.mcdb.ucla.edu/Research/Hartenstein/acardona
Reply | Threaded
Open this post in threaded view
|

Re: Linux download

Paolo Ariano
In reply to this post by Jarek Lipski
Il giorno ven, 12/09/2008 alle 11.47 +0200, Jarek Lipski ha scritto:
> #!/bin/sh
> SCRIPT_DIR=`dirname $0`
> java -Xmx512m -jar $SCRIPT_DIR/ij.jar

Hi Jerek,

you could download the .deb from:
http://packages.debian.org/unstable/science/imagej

and if you want extract the imagej.sh wrapper or better i paste it
here ;)

hth
paolo

#!/bin/bash

# imagej.sh - a not so simple wrapper script used to run ImageJ

# Copyright © 2008 Paolo Ariano
# Authors: Paolo Ariano (paolo dot ariano at unito dot it)
# Last modified date: 04 March 2008

# This is a not so simple wrapper script used to run ImageJ in Unix but
# optimized for Debian GNU/Linux, this is a merge between my original
script
# and a more exhaustive one from Jon Jackson (jjackson at familyjackson
dot net)

# This program is free software; you can redistribute it and/or modify
it
# under the terms of the GNU Lesser General Public Licenseas published
by
# the Free Software Foundation, either version 3 of the License, or (at
# your option) any later version. See the file Documentation/LGPL3 in
the
# original distribution for details. There is ABSOLUTELY NO warranty.
# This program is free software, but comes with no warrenty or guarantee
# send bug reports or feedback to me or to debian bug tracking system


# setup environment
set +u # don't give error for unset variables (matters for environment
variables)
shopt -s extglob # allow extended pattern matching

##################### DEFINE JAVA_HOME  #####################

if [ -z "$JAVA_HOME" ] ; then
    JAVA_HOME=$(/usr/sbin/update-java-alternatives -l | head -1 | cut
-d' ' -f 3)
fi

##################### CREATE THE RIGHT ENVIRONMENT #####################

# ImageJ path
ij_path=/usr/share/java

#ImageJ user path
ij_user_path=$HOME/.imagej

# report errors to this user
ijadmin='[hidden email]'

# Documentation URL
doc_url='http://rsb.info.nih.gov/ij/'

# temp folder
ij_tmp=$HOME/.imagej/tmp

# default behaviour when an ImageJ window is already open
newwindow='true'
#newwindow='false'

# macro argument conjoining character
separator=':'
# a ' ' may work provided no arguments would contain spaces
# use macro functions:  args=getArgument(); argArray=split(args, ':');
# to recover macro arguments

declare -i mem
declare -i default_mem=500
declare -i min_mem=16
declare -i max_mem
declare -i free_mem

# other variables
dir=`pwd`
user=`whoami`
host=`hostname`
if [[ -z "$DISPLAY" ]] ; then
    echo 'Display variable not set'
    echo 'If ImageJ fails to load, try '
    echo '% setenv DISPLAY yourcomputer:0'
    echo 'if you use the "csh" or for "bash" try'
    echo '% export DISPLAY=yourcomputer:0'
    display='default'
else
    display="$DISPLAY"
fi

declare -i port=0
declare -i verbosity=0
images=''
macrocmd=''
macroargs=''

# max memory allocation is 1800MB on 32bit java and 4000 on 64bit java
if [[ `uname` == 'SunOS' ]] ; then
    arch='-d64'
        java_path="${ij_path}/jre64/bin/java"
        max_mem=`vmstat | awk 'NR == 3 {fmem=int($5 / 1024); if (fmem < 4000)
{print fmem} else {print 4000}}'`
        free_mem="max_mem"
        mem=${free_mem}/2*3
        if (( $mem > $default_mem || $mem < $min_mem )) ; then mem=
$default_mem ; fi
elif [[ `uname` == 'Linux' ]] ; then
        if [[ `uname -m` == 'x86_64' ]] ; then
    arch='-d64'
    java_path="${ij_path}/jre64/bin/java"
    max_mem=`free | awk 'NR == 2 {fmem=int($2 / 1024); if (fmem < 4000)
{print fmem} else {print 4000}}'`
                free_mem=`free | awk 'NR == 3 {fmem=int($4 / 1024); if (fmem < 4000)
{print fmem} else {print 4000}}'`
                mem=${free_mem}/3*2
                if (( $mem > $default_mem || $mem < $min_mem )) ; then mem=
$default_mem ; fi
        else
                arch='-d32'
    java_path="${ij_path}/jre/bin/java"
    free_mem=`free | awk 'NR == 2 {fmem=int($2 / 1024); if (fmem <
1800) {print fmem} else {print 1800}}'`
                free_mem=`free | awk 'NR == 3 {fmem=int($4 / 1024); if (fmem < 1800)
{print fmem} else {print 1800}}'`
                mem=${free_mem}/3*2
                if (( $mem > $default_mem || $mem < $min_mem )) ; then mem=
$default_mem ; fi
        fi
fi

# create plugins,macro,tmp dirs
mkdir -p $ij_user_path/plugins
mkdir -p $ij_user_path/macros
mkdir -p $ij_user_path/luts

# create imagej socket-lock directory if non existant
if [[ ! -d "$ij_tmp" ]] ; then
    mkdir -p "$ij_tmp"
    #chmod 777 "$ij_user_path/tmp"
fi

# Warning on syntax change
# for var in "$@" ; do
  #if [[ "$var" ==
@(-batch|-eval|-macro|-mem|-new|-port|-run|-verbose) ]] ; then
# if [ $var == @(-batch|-eval|-macro|-mem|-new|-port|-run|-verbose) ] ;
then
# echo "ImageJ command line options have changed!" 1>&2
# echo "$var is no longer a valid option, type 'imagej -h'" 1>&2
# echo "for full usage" 1>&2
# exit 1
# fi
# done

# makes symbolik links from shared plugins, macros and luts

ls /usr/share/imagej/plugins | while read p ; do
  if [ ! -e "$ij_user_path/plugins/$p" ] ; then
    ln -s /usr/share/imagej/plugins/$p $ij_user_path/plugins/$p
  fi
done

ls /usr/share/imagej/macros | while read p; do
  if [ ! -e "$ij_user_path/macros/$p" ] ; then
      ln -s "/usr/share/imagej/macros/$p" "$ij_user_path/macros/$p"
  fi
done

ls /usr/share/imagej/luts | while read p ; do
    if [ ! -e "$ij_user_path/luts/$p" ] ; then
        ln -s /usr/share/imagej/luts/$p $ij_user_path/luts/$p
    fi
done



##################### USAGE DESCRIPTION #####################

function usage {
    echo
    echo 'Image display and analysis program. Opens formats including:'
    echo 'UNC, Analyze, Dicom, NIFTI, Tiff, Jpeg, Gif, PNG ...'  
    echo
    echo 'imagej [options] image [ image2 ... image3 ]'
    echo '    -h        print help and more options'
    echo '    -o        open images in an open ImageJ panel'
    echo '    -p <N>    open images in ImageJ panel number <N>'
    echo "    -x <MB>   set available memory (default=${mem} max=
${max_mem})"    
    echo
}

function fullusage {
    echo
    echo 'Image display and analysis program. Opens formats including:'
    echo 'UNC, Analyze, Dicom, NIFTI, Tiff, Jpeg, Gif, PNG ...'  
    echo
    echo 'imagej [options] image [ image2 ... image3 ] -> open images'
    echo
    echo 'basic options:'
    echo '  -h        print help and more options'
    echo '  -o        open images in existing ImageJ panel if one
exists'
    echo '  -p <N>    open images in existing ImageJ panel number <N>'
    echo "  -x <MB>   set available memory (default=${mem} max=
${max_mem})"
    echo
    echo 'advanced options:'
    echo '  -c        enable plugin compilation within imagej'
    echo '  -d        use development version'
    echo '  -v        be verbose (vv or vvv increases verbosity)'  
    echo
    echo 'options for batch processing:'
    echo "  -e 'Macro Code'            execute macro code"
    echo "  -r 'Menu Command'          run menu command"
    echo "Quotation marks '' are required around commands including
spaces"
    echo 'Commands can be sent to open ImageJ panels with the -p option'
    echo
    echo 'options for macros:'
    echo 'imagej [-i image] [-b|-m] [arg1 ... argN] '
    echo '  -b macro    run macro without graphics window'
    echo '  -m macro    run macro'
    echo '"image" will be opened before macro is run'
    echo 'all following arguments are passed to macro'        
    echo
    echo "Documentation - $doc_url "
        echo "Report problems with this software to $ijadmin"
    echo
}

function macroCmdError {
        fullusage
        echo 'Only one command option (-b -e -m OR -r) may be specified' 1>&2
        exit 1
}

# The best way to install .jar libraries required by plugins is to copy
them
# to the imagej ij_path=/usr/share/java alternatively or add the .jar
# filepath to the modules line below. Paths are separated by a colon
# modules="-cp ${ij_path}/ij.jar:${ij_path}/plugins/jars/dcmie.jar"
modules="-cp ${ij_path}/ij.jar"
 
# enable plugins to be compiled in imagej
tools="$JAVA_HOME/lib/tools.jar"


#####################  ARGUMENTS PARSING #####################

while getopts b:ce:hi:m:op:r:vx: options
do
        case $options in
                b) if [[ -n "$macrocmd" ]] ; then macroCmdError ; fi
                        macrocmd="-batch ${OPTARG}"
                        ;;
                c) modules="${modules}:${tools}"
                        ;;
                e)  if [[ -n "$macrocmd" ]] ; then macroCmdError ; fi
                        macrocmd='-eval'
                        macroargs="'${OPTARG}'"
                        ;;
                h)  fullusage
                        exit 0
                        ;;
                i)  images="${images}'${OPTARG}' "
                        ;;
                m) if [[ -n "$macrocmd" ]] ; then macroCmdError ; fi
                        macrocmd="-macro ${OPTARG}"
                        ;;
                o)  newwindow='false'
                        ;;
                p) newwindow='false'
                        port="${OPTARG}"
        if (( "$port" < 1 || "$port" > 99 )) ; then
            echo "${OPTARG} is not a permissible value for port number
(-p)" 1>&2
            exit 1
        fi
                        ;;
                r) if [[ -n "$macrocmd" ]] ; then macroCmdError ; fi
                        macrocmd='-run'
                        macroargs="'${OPTARG}'"
                        ;;
                v) verbosity=verbosity+1
                        if (( $verbosity == 2 )) ; then set -x ; fi
                        if (( $verbosity == 3 )) ; then set -v ; fi
                        ;;
                x) mem="${OPTARG}"
                        if (( $mem < $min_mem || $mem > $max_mem )) ; then
            echo "${OPTARG} is not a permissible value for memory (-x)"
1>&2
            echo "min=${min_mem}, max=${max_mem}" 1>&2
            exit 1
                        fi
                        ;;
                \?) usage
                        exit 1
                        ;;
        esac
done
                       
declare -i i=1
while (( i < $OPTIND )) ; do
        shift
        i=i+1
done

#if (( "$#" == 0 )) ; then
# usage
#fi

# -b and -m options only:
# remaining command line arguments are passed as macro arguments
# separated by $separator
if [[ -n "$macrocmd" && -z "$macroargs" ]] ; then
        while (( "$#" > 0 )) ; do
        if [[ -z "$macroargs" ]] ; then
            macroargs="${1}"
        else
            macroargs="${macroargs}${separator}${1}"
        fi
        shift
        done
        macroargs="'$macroargs'"
fi
       
# protect possible spaces in image filenames
if (( "$#" > 0 )) ; then
        while (( "$#" > 0 )) ; do
                images="${images}'${1}' "
                shift
        done
fi

##################### USING PORT #####################

# Creates a temp file indicating a port is in use by imagej
pushd "$ij_tmp" > /dev/null
declare -i count=1
portopen='false'
lockFileCreated='false'
declare -a locklist=(`ls | grep '[0-9][0-9]-.*'`)

if (( $verbosity > 0 )) ; then echo -e "locklist: \n ${locklist[*]}" ;
fi

# port specified by user
if (( $port > 0 )) ; then
    # look for a lock on the port specified
    for lockname in ${locklist[*]} ; do
        prefix=`printf '%02u' $port`
        if [[ "$lockname" == ${prefix}-${user}-${host}* ]] ; then
        # found lock on the requested port, owned by user on current
display
            portopen='true'
            if (( $verbosity > 0 )) ; then echo "Using socket lock:
$lockname" ; fi
            count=$port
            break
        elif ("$lockname" =~ ${prefix}-* ) ; then
            echo "Port $port is in use by some other user or a different
host" 1>&2
            if (( $verbosity > 0 )) ; then echo "Port lock: $lockname" ;
fi
            exit 1
        fi
    done
    # specified port not in use
    count=$port

# If existing window is requested, look for listening port
elif [[ "$newwindow" == 'false' && ${#locklist} != 0 ]] ; then
    # look for a lock on the current display for this user
    for lockname in ${locklist[*]} ; do
        if [[ "$lockname" == [0-9][0-9]-${user}-${host}-${display} ]] ;
then
            portopen='true'
            if (( $verbosity > 0 )) ; then echo "Found socket lock:
$lockname" ; fi
            # if a matching user/display is found, use this one
            count="${lockname%-*-*-*}"
            #count=`echo $lockname | sed  -e 's/^\([0-9][0-9]\).*/\1/'
-e 's/^0//'` # csh?
            break
        fi
    done
fi

# if a new port is to be used
if [[ "$portopen" == 'false' ]] ; then
    # new window requested or no matching port found
    # if port is not specified, look for first free port
    if (( "$port" == 0 )) ; then
        if (( ${#locklist} == 0 )) ; then
            # no active locks - use first port
            count=1
        else
            # active locks - check each port number so see if it is in
use
            # this is not synchronised!!
            count=0
            inuse='true'
            while [[ "$inuse" == 'true' ]] ; do
                count=count+1
                prefix=`printf '%02u' $count`
                inuse='false'
                for lockname in ${locklist[*]} ; do
                    if [[ "$lockname" == ${prefix}-* ]] ; then
                        inuse='true'
                    fi
                done
            done
        fi
    fi
    # creating a new port lock
    prefix=`printf '%02u' $count`
    lockname=${prefix}-${user}-${host}-${display}
        if (( $verbosity > 0 )) ; then echo -n "creating lock $lockname ... " ;
fi
        touch $lockname
        trap '\rm -f ${ij_tmp}/$lockname >/dev/null ; exit 1' EXIT TERM
        # Quitting ImageJ sends EXIT, as does a kill/kill -9
        # CTRL+C in terminal sends INT + EXIT
        # System shutdown sends TERM (+EXIT??)
       
        if (( $verbosity > 0 )) ; then  echo 'done' ; fi

    lockFileCreated='true'
        echo 'Open other images in this ImageJ panel as follows:'
        echo "  imagej -p $count <image1> [<image2> ... <imageN>]"
    if (( $verbosity > 0 )) ; then echo "Socket lock: $lockname" ; fi
        echo
fi

# Report number of port locks - more than 50 may indicate error in this
script
if [[ $count -gt 50 && $port == 0 && "$ijadmin" != '' ]] ; then
mail -s "ImageJ ports on $host" $ijadmin << EOF
Port locks on $host reached $count
EOF
fi

##################### FINALLY RUN IMAGEJ #####################

popd > /dev/null

if [ "$JAVA_HOME" ] ; then
        if (( $verbosity > 0 )) ; then
                echo ${modules}
    echo $JAVA_HOME/bin/java ${arch} -mx${mem}m ${modules} ij.ImageJ
-ijpath ${ij_user_path} -port${count} ${images} ${macrocmd} ${macroargs}
        else
        eval $JAVA_HOME/bin/java ${arch} -mx${mem}m ${modules} ij.ImageJ
-ijpath ${ij_user_path} -port${count} ${images} ${macrocmd} ${macroargs}
        fi
else
  echo "No JVM found to run ImageJ"
  echo "Please apt-get install a JVM to run ImageJ or "
  echo "set JAVA_HOME if it's not a JVM from a Debian Package."
  exit 1
fi

exit 0


--
NeuroScience PhD
Post-doc @ University of Torino
www.personalweb.unito.it/paolo.ariano
www.cellular-neurophysiology.unito.it
www.mieleria.it
Reply | Threaded
Open this post in threaded view
|

Re: Linux download

Gabriel Lapointe
I tried that on my debian (amd64) server with 4G of ram. but for some
reason unkonwn to me the part about memory detection doesn't work and
I'm stuck with only 500m

Here the part about memory allocation

declare -i mem
declare -i default_mem=500
declare -i min_mem=16
declare -i max_mem
declare -i free_mem


# max memory allocation is 1800MB on 32bit java and 4000 on 64bit java
if [[ `uname` == 'SunOS' ]] ; then
 ...
elif [[ `uname` == 'Linux' ]] ; then
        if [[ `uname -m` == 'x86_64' ]] ; then
    arch='-d64'
    java_path="${ij_path}/jre64/bin/java"
    max_mem=`free | awk 'NR == 2 {fmem=int($2 / 1024); if (fmem < 4000)
{print fmem} else {print 4000}}'`
                free_mem=`free | awk 'NR == 3 {fmem=int($4 / 1024); if (fmem < 4000)
{print fmem} else {print 4000}}'`
                mem=${free_mem}/3*2
                if (( $mem > $default_mem || $mem < $min_mem )) ; then mem=
$default_mem ; fi
        else
                arch='-d32'
    java_path="${ij_path}/jre/bin/java"
    free_mem=`free | awk 'NR == 2 {fmem=int($2 / 1024); if (fmem <
1800) {print fmem} else {print 1800}}'`
                free_mem=`free | awk 'NR == 3 {fmem=int($4 / 1024); if (fmem < 1800)
{print fmem} else {print 1800}}'`
                mem=${free_mem}/3*2
                if (( $mem > $default_mem || $mem < $min_mem )) ; then mem=
$default_mem ; fi
        fi
fi


Paolo Ariano wrote:

> Il giorno ven, 12/09/2008 alle 11.47 +0200, Jarek Lipski ha scritto:
>  
>> #!/bin/sh
>> SCRIPT_DIR=`dirname $0`
>> java -Xmx512m -jar $SCRIPT_DIR/ij.jar
>>    
>
> Hi Jerek,
>
> you could download the .deb from:
> http://packages.debian.org/unstable/science/imagej
>
> and if you want extract the imagej.sh wrapper or better i paste it
> here ;)
>
> hth
> paolo
Reply | Threaded
Open this post in threaded view
|

Re: Linux download

Stefan Heim
In reply to this post by Paolo Ariano
Hi Paolo,

On Fri, 2008-09-12 at 15:41 +0200, Paolo Ariano wrote:

> Il giorno ven, 12/09/2008 alle 11.47 +0200, Jarek Lipski ha scritto:
> > #!/bin/sh
> > SCRIPT_DIR=`dirname $0`
> > java -Xmx512m -jar $SCRIPT_DIR/ij.jar
>
> you could download the .deb from:
> http://packages.debian.org/unstable/science/imagej
>
> and if you want extract the imagej.sh wrapper or better i paste it
> here ;)

thanks for maintaining the ImageJ Debian package. The run script seems
to be a modified version of the file script.txt distributed with ImageJ
(or vice versa?), and suffers from the same error on 32 bit linux
architectures: it does not allow to change the size of the JVM heap.
Making use of the -x switch of the run script will trigger the following
error:

sheim@stardust:~$ imagej -x 1500
/usr/bin/imagej: line 263: ((: 1500 < 16 || 1500 >  : syntax error: operand expected (error token is " ")

This is due to the variable max_mem being left unassigned on 32 bit
architectures. This patch:

--- imagej.orig 2008-07-11 11:24:15.000000000 +0200
+++ imagej      2008-07-11 11:24:17.000000000 +0200
@@ -102,7 +102,7 @@
        else
                arch='-d32'
        java_path="${ij_path}/jre/bin/java"
-       free_mem=`free | awk 'NR == 2 {fmem=int($2 / 1024); if (fmem < 1800) {print fmem} else {print 1800}}'`
+       max_mem=`free | awk 'NR == 2 {fmem=int($2 / 1024); if (fmem < 1800) {print fmem} else {print 1800}}'`
                free_mem=`free | awk 'NR == 3 {fmem=int($4 / 1024); if (fmem < 1800) {print fmem} else {print 1800}}'`
                mem=${free_mem}/3*2
                if (( $mem > $default_mem || $mem < $min_mem )) ; then mem=$default_mem ; fi

fixes that issue. I had already filed a bug report for the Debian
package ( http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=496798 ), but
got no response so far, so I'm reposting this here, because I think this
sould also be fixed in the script.txt distributed with ImageJ.

Thanks for your work,
-Stefan
Reply | Threaded
Open this post in threaded view
|

Re: Linux download

Paolo Ariano
Il giorno lun, 15/09/2008 alle 15.30 +0200, Stefan Heim ha scritto:
> fixes that issue. I had already filed a bug report for the Debian
> package ( http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=496798 ), but
> got no response so far, so I'm reposting this here, because I think this
> sould also be fixed in the script.txt distributed with ImageJ.

Hi Stefan,

thanks a lot, i'll fix the script with your patch as soon as possible

till next
paolo
--
NeuroScience PhD
Post-doc @ University of Torino
www.personalweb.unito.it/paolo.ariano
www.cellular-neurophysiology.unito.it
www.mieleria.it
Reply | Threaded
Open this post in threaded view
|

Re: Linux download

Jonathan Jackson-2
In reply to this post by Jarek Lipski
>thanks for maintaining the ImageJ Debian package. The run script seems
>to be a modified version of the file script.txt distributed with ImageJ
>(or vice versa?), and suffers from the same error on 32 bit linux
>architectures: it does not allow to change the size of the JVM heap.
>Making use of the -x switch of the run script will trigger the following
>error:
>
>sheim@stardust:~$ imagej -x 1500
>/usr/bin/imagej: line 263: ((: 1500 < 16 || 1500 >  : syntax error: operand
expected (error token is " ")

>
>This is due to the variable max_mem being left unassigned on 32 bit
>architectures. This patch:
>
>--- imagej.orig 2008-07-11 11:24:15.000000000 +0200
>+++ imagej      2008-07-11 11:24:17.000000000 +0200
>@@ -102,7 +102,7 @@
>        else
>                arch='-d32'
>        java_path="${ij_path}/jre/bin/java"
>-       free_mem=`free | awk 'NR == 2 {fmem=int($2 / 1024); if (fmem <
1800) {print fmem} else {print 1800}}'`
>+       max_mem=`free | awk 'NR == 2 {fmem=int($2 / 1024); if (fmem < 1800)
{print fmem} else {print 1800}}'`
>                free_mem=`free | awk 'NR == 3 {fmem=int($4 / 1024); if
(fmem < 1800) {print fmem} else {print 1800}}'`
>                mem=${free_mem}/3*2
>                if (( $mem > $default_mem || $mem < $min_mem )) ; then
mem=$default_mem ; fi
>
>fixes that issue. I had already filed a bug report for the Debian
>package ( http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=496798 ), but
>got no response so far, so I'm reposting this here, because I think this
>sould also be fixed in the script.txt distributed with ImageJ.
>
>Thanks for your work,
>-Stefan
>=========================================================================

Thanks Paulo for maintaining the debian package, and thanks Stefan for
pointing out the bug in script.txt.

I've sent an updated version of script.txt to Wayne which fixes this and
improves support for spaces in filenames. I'll also send it to Paulo off
list in case any of the changes are of value for the debian version. Later
I'll look into replacing my version with the debian version.

regards,
Jon