desktop icon zum shell script
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 18

Thema: desktop icon zum shell script

  1. #1
    blub Avatar von kimi
    Registriert seit
    20.12.2006
    Ort
    Tuttlingen
    Beiträge
    425

    desktop icon zum shell script

    hallo leute,

    ich habe eine frage, die sicher schon oft gestellt wurde, nur konnte ich leider mit den von mir gefundenen threads und lösungen nichts anfangen.

    ich will einen desktop-icon zu einem programm erstellen, welches ich nicht über den paketmanager installiert habe, sondern das als java-programm daherkommt. es gibt ein shellskript im entsprechenden ordner, welches das programm startet.

    bisher konnte ich es nur mit

    Code:
     cd /pfad/zum/programm/
    
    ./programm
    starten.

    Einen Icon zu erstellen, dessen befehl "/pfad/zum/programm/programm" lautet, bringt leider nichts. aber es gibt doch bestimmt eine möglichkeit, auch solche programme vom desktop aus zu starten?

    es handelt sich um lightzone, ein bildbearbeitungsprogramm, welches übrigens seehr zu empfehlen ist. auch den torcs strecken editor könnte man so starten.

    Nun bin ich selber hier mit meinem latein am ende (was freilich nix heißen muss) und wollte fragen, ob mir hier jemand helfen kann?

    Vielen dank schon einmal,

    grüße

    kimi




  2. Inside Anonymous - Lesetipp zum Sonderpreis


     Inside Anonymous erzählt erstmalig die Geschichte dreier Mitglieder des harten Kerns:
    ihren Werdegang und ihre ganz persönliche Motivation, die sie zu überzeugten Hackern machte.
    Basierend auf vielen exklusiven Interviews bietet das Buch einen einzigartigen und spannenden
    Einblick in die Köpfe, die hinter der virtuellen Community stehen.
    Das Buch kostet bei terrashop.de jetzt statt 22,00 EUR nur noch 4,99 EUR.




    Jetzt bei terrashop.de anschauen – Nur solange der Vorrat reicht


  3. #2
    Foren As Avatar von whopper
    Registriert seit
    01.10.2006
    Beiträge
    96
    müsst doch eigentlich gehen mit /pfad/zum/programm/programm

    hast du im script

    Code:
    #!/pfad/zur/shell
    ...
    ...
    ...
    ...

  4. #3
    ar0 Avatar von Gott_in_schwarz
    Registriert seit
    22.04.2007
    Ort
    Niedersachsen
    Beiträge
    546
    Shebangs werden von shells interpretiert. Wer sagt denn, dass Icons in einer extra-shell gelauncht werden? Wenns ein bash-Skript ist, versuchs mal mit dem Befehl:
    Code:
    bash /pfad/zun/skript.sh
    Oder direkt das Java-Programm ausführen, sollte (afaik, könnte mich irren) mit:
    Code:
    java /pfad/zun/skript.jv
    gehn.

    Edit: Es hätte btw nicht geschadet, wenn du zumindest die DE und den WM angegeben hättest...
    Warum bitte sollte man code-Tags verwenden? Pff..
    perl -e 'sub X{};:?[$(:: :):'

  5. #4
    Law & Order Avatar von sinn3r
    Registriert seit
    28.12.2006
    Ort
    Mölln
    Beiträge
    2.733
    Du kannst deinem Lieblingsshellemulator (zb konsole oder gnome-terminal, eterm und wie sie alle heisen) auch ein Programm mit geben, dass sie ausfuehren sollen, ich hab das zb fuer irssi (mit konsole)

    Code:
    konsole -e /usr/bin/irssi
    Will the real Slim Shady please stand up?

  6. #5
    blub Avatar von kimi
    Registriert seit
    20.12.2006
    Ort
    Tuttlingen
    Beiträge
    425
    vielen dank für die schnellen antworten. ich habe kde und kubuntu installiert.

    ich habe den icon-befehl jetzt auf
    Code:
     konsole -e /usr/local/LightZone
    umgeändert, dann öffnet sich die konsole kurz und schluss war.
    könnte das daran legen dass das script nicht auf .sh endet? es hat schlicht garkeine endung. muss ich das dann umbenennen?

    grüße und nomel vielen dank

    kimi

  7. #6
    König Avatar von juan_
    Registriert seit
    22.01.2004
    Ort
    Berlin
    Beiträge
    976
    setzt mal den "." davor, der fehlt ja offensichtlich.


    Ciao

  8. #7
    ar0 Avatar von Gott_in_schwarz
    Registriert seit
    22.04.2007
    Ort
    Niedersachsen
    Beiträge
    546
    Nein, tut er offensichtlich nicht.

    @TE: Was soll das Skript eigentlich tun? Ein externes Java-Programm starten? Warum startest du das Java-Programm nicht "direkt"? Ist das alles Textbasiert oder gibts ne GUI? Etc. pp.
    Warum bitte sollte man code-Tags verwenden? Pff..
    perl -e 'sub X{};:?[$(:: :):'

  9. #8
    König Avatar von juan_
    Registriert seit
    22.01.2004
    Ort
    Berlin
    Beiträge
    976
    gott: naja, ich hab oben nur gesehn, wie er das Script mit Punkt startet und im unteren Pfad fehlt er, daher meine Annahme.

    ciao

  10. #9
    Graue Eminenz Avatar von saeckereier
    Registriert seit
    08.05.2005
    Ort
    Im schönen Norden
    Beiträge
    1.920
    ls -l scriptname ?
    Inhalt des SkripteS?
    Docendo discimus

    Jabber: <mynickname>@unixboard.de
    Infos zum Jabberserver von Unixboard.de


    alias ls="ls | cat | cat | cat | cat | cat | cat | cat"

  11. #10
    blub Avatar von kimi
    Registriert seit
    20.12.2006
    Ort
    Tuttlingen
    Beiträge
    425
    es geht um LightZone, ein Fotobearbeitungsprogramm (s.o.). Da gibt es ein Startscrpit, mit dem ich es starte, genau wie maniadrive (hab ich allerdings inzwischen ein deb), torcs track editor, usw und so fort. ein readme ist nicht dabei, daher weiß ich aber auch nicht, was ich da für ein java dingens starten soll. wenn mich einer eines besseren belehren kann, bin ich sofort dabei...
    es handelt sich übrigens, wie die anderen programme, die ich so starte, um gui programme (java programme teilweise), von denen keine pakete vorhanden sind. es tut mir leid, dass ich nicht mehr infos geben kann, weiß allerdings nicht, wo ich noch weitere herbekommen sollte. mich verwundert halt, dass in der easylinux, wo ich auf das programm gestoßen bin, einfach steht "oder erstlellen sie einen icon, passende grafik findet sich im verzeichnis bla."

    viele grüße,

    kimi

  12. #11
    Graue Eminenz Avatar von saeckereier
    Registriert seit
    08.05.2005
    Ort
    Im schönen Norden
    Beiträge
    1.920
    Zitat Zitat von saeckereier Beitrag anzeigen
    ls -l scriptname ?
    Inhalt des SkripteS?
    Bitte das erste einmal ausführen und den Inhalt des Skriptes hier posten
    Docendo discimus

    Jabber: <mynickname>@unixboard.de
    Infos zum Jabberserver von Unixboard.de


    alias ls="ls | cat | cat | cat | cat | cat | cat | cat"

  13. #12
    blub Avatar von kimi
    Registriert seit
    20.12.2006
    Ort
    Tuttlingen
    Beiträge
    425
    @ saeckereier:
    Code:
    seba@Sebastian:/usr/local/LightZone$ ls -l ./LightZone
    -rwxr-xr-x 1 root root 7761 2008-04-20 00:35 ./LightZone
    vielleicht hilft es etwas weiter...

    grüße

    kimi

    EDIT:

    ich habe jetzt einfach eine verknüpfung gesetzt zum skript, dann kann man es starten. nur halt den icon nicht verändern..^^ man hat halt dann die vorschau auf das script auf dem desktop. nicht schön, aber es funktioniert.
    Geändert von kimi (03.06.2008 um 14:30 Uhr) Grund: Warnung! - Antwort auf eigenen Beitrag innerhalb von 24 Stunden!

  14. #13
    Graue Eminenz Avatar von saeckereier
    Registriert seit
    08.05.2005
    Ort
    Im schönen Norden
    Beiträge
    1.920
    Postest du auch nochmal das Skript selbst?
    Docendo discimus

    Jabber: <mynickname>@unixboard.de
    Infos zum Jabberserver von Unixboard.de


    alias ls="ls | cat | cat | cat | cat | cat | cat | cat"

  15. #14
    blub Avatar von kimi
    Registriert seit
    20.12.2006
    Ort
    Tuttlingen
    Beiträge
    425
    achso, sorry so hatte ich das nicht verstanden, kann ich natürlich machen.

    Code:
    #! /bin/sh
    
    # Uncomment the following line to override the JVM search sequence
    # INSTALL4J_JAVA_HOME_OVERRIDE=
    # Uncomment the following line to add additional VM parameters
    # INSTALL4J_ADD_VM_PARAMS=
    
    read_db_entry() {
      if [ -n "$INSTALL4J_NO_DB" ]; then
        return 1
      fi
      db_file=$HOME/.install4j
      if [ ! -f "$db_file" ]; then
        return 1
      fi
      if [ ! -x "$java_exc" ]; then
        return 1
      fi
      found=1
      exec 7< $db_file
      while read r_type r_dir r_ver_major r_ver_minor r_ver_micro r_ver_patch<&7; do
        if [ "$r_type" = "JRE_VERSION" ]; then
          if [ "$r_dir" = "$test_dir" ]; then
            ver_major=$r_ver_major
            ver_minor=$r_ver_minor
            ver_micro=$r_ver_micro
            ver_patch=$r_ver_patch
            found=0
            break
          fi
        fi
      done
      exec 7<&-
    
      return $found
    }
    
    create_db_entry() {
      tested_jvm=true
      echo testing JVM in $test_dir ...
      version_output=`"$bin_dir/java" -version 2>&1`
      is_gcj=`expr "$version_output" : '.*libgcj'`
      if [ "$is_gcj" = "0" ]; then
        java_version=`expr "$version_output" : '.*"\(.*\)".*'`
        ver_major=`expr "$java_version" : '\([0-9][0-9]*\)\..*'`
        ver_minor=`expr "$java_version" : '[0-9][0-9]*\.\([0-9][0-9]*\)\..*'`
        ver_micro=`expr "$java_version" : '[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*'`
        ver_patch=`expr "$java_version" : '.*_\(.*\)'`
      fi
      if [ "$ver_patch" = "" ]; then
        ver_patch=0
      fi
      if [ -n "$INSTALL4J_NO_DB" ]; then
        return
      fi
      db_new_file=${db_file}_new
      if [ -f "$db_file" ]; then
        awk '$1 != "'"$test_dir"'" {print $0}' $db_file > $db_new_file
        rm $db_file
        mv $db_new_file $db_file
      fi
      dir_escaped=`echo "$test_dir" | sed -e 's/ /\\\\ /g'`
      echo "JRE_VERSION	$dir_escaped	$ver_major	$ver_minor	$ver_micro	$ver_patch" >> $db_file
    }
    
    test_jvm() {
      tested_jvm=na
      test_dir=$1
      bin_dir=$test_dir/bin
      java_exc=$bin_dir/java
      if [ -z "$test_dir" ] || [ ! -d "$bin_dir" ] || [ ! -f "$java_exc" ] || [ ! -x "$java_exc" ]; then
        return
      fi
    
      tested_jvm=false
      read_db_entry || create_db_entry
    
      if [ "$ver_major" = "" ]; then
        return;
      fi
      if [ "$ver_major" -lt "1" ]; then
        return;
      elif [ "$ver_major" -eq "1" ]; then
        if [ "$ver_minor" -lt "6" ]; then
          return;
        fi
      fi
    
      if [ "$ver_major" = "" ]; then
        return;
      fi
      app_java_home=$test_dir
    }
    
    add_class_path() {
      if [ -n "$1" ] && [ `expr "$1" : '.*\*'` -eq "0" ]; then
        local_classpath="$local_classpath${local_classpath:+:}$1"
      fi
    }
    
    old_pwd=`pwd`
    
    progname=`basename "$0"`
    linkdir=`dirname "$0"`
    
    cd "$linkdir"
    prg="$progname"
    
    while [ -h "$prg" ] ; do
      ls=`ls -ld "$prg"`
      link=`expr "$ls" : '.*-> \(.*\)$'`
      if expr "$link" : '.*/.*' > /dev/null; then
        prg="$link"
      else
        prg="`dirname $prg`/$link"
      fi
    done
    
    prg_dir=`dirname "$prg"`
    cd "$prg_dir"
    prg_dir=`pwd`
    app_home=.
    cd "$app_home"
    app_home=`pwd`
    bundled_jre_home="$app_home/jre"
    
    cd "$old_pwd"
    
    
    if [ -f "$bundled_jre_home/lib/rt.jar.pack" ]; then
      old_pwd200=`pwd`
      cd "$bundled_jre_home"
      echo "Preparing JRE ..."
      jar_files="lib/rt.jar lib/charsets.jar lib/plugin.jar lib/deploy.jar lib/ext/localedata.jar lib/jsse.jar"
      for jar_file in $jar_files
      do
        if [ -f "${jar_file}.pack" ]; then
          bin/unpack200 -r ${jar_file}.pack $jar_file
    
          if [ $? -ne 0 ]; then
            echo "Error unpacking jar files. Aborting."
            echo "You might need administrative priviledges for this operation."
    exit 1
          fi
        fi
      done
      cd "$old_pwd200"
    fi
    if [ -z "$app_java_home" ]; then
      test_jvm $INSTALL4J_JAVA_HOME_OVERRIDE
    fi
    
    if [ -z "$app_java_home" ]; then
    if [ -f "$app_home/.install4j/pref_jre.cfg" ]; then
        read file_jvm_home < "$app_home/.install4j/pref_jre.cfg"
        test_jvm "$file_jvm_home"
        if [ -z "$app_java_home" ] && [ $tested_jvm = "false" ]; then
            rm $HOME/.install4j
            test_jvm "$file_jvm_home"
        fi
    fi
    fi
    
    if [ -z "$app_java_home" ]; then
      test_jvm "$app_home/jre"
      if [ -z "$app_java_home" ] && [ $tested_jvm = "false" ]; then
        rm $HOME/.install4j
        test_jvm "$app_home/jre"
      fi
    fi
    
    if [ -z "$app_java_home" ]; then
      path_java=`which java 2> /dev/null`
      path_java_home=`expr "$path_java" : '\(.*\)/bin/java$'`
      test_jvm $path_java_home
    fi
    
    
    if [ -z "$app_java_home" ]; then
      common_jvm_locations="/opt/i4j_jres/* /usr/local/i4j_jres/* /usr/bin/java* /usr/bin/jdk* /usr/bin/jre* /usr/bin/j2*re* /usr/bin/j2sdk* /usr/java* /usr/jdk* /usr/jre* /usr/j2*re* /usr/j2sdk* /usr/java/j2*re* /usr/java/j2sdk* /usr/java/jdk* /usr/java/jre* /usr/lib/java/jre /usr/local/java* /usr/local/jdk* /usr/local/jre* /usr/local/j2*re* /usr/local/j2sdk* /usr/lib/java* /usr/lib/jdk* /usr/lib/jre* /usr/lib/j2*re* /usr/lib/j2sdk*"
      for current_location in $common_jvm_locations
      do
    if [ -z "$app_java_home" ]; then
      test_jvm $current_location
    fi
    
      done
    fi
    
    if [ -z "$app_java_home" ]; then
      test_jvm $JAVA_HOME
    fi
    
    if [ -z "$app_java_home" ]; then
      test_jvm $JDK_HOME
    fi
    
    if [ -z "$app_java_home" ]; then
      test_jvm $INSTALL4J_JAVA_HOME
    fi
    
    if [ -z "$app_java_home" ]; then
    if [ -f "$app_home/.install4j/inst_jre.cfg" ]; then
        read file_jvm_home < "$app_home/.install4j/inst_jre.cfg"
        test_jvm "$file_jvm_home"
        if [ -z "$app_java_home" ] && [ $tested_jvm = "false" ]; then
            rm $HOME/.install4j
            test_jvm "$file_jvm_home"
        fi
    fi
    fi
    
    if [ -z "$app_java_home" ]; then
      echo No suitable Java Virtual Machine could be found on your system.
      echo The version of the JVM must be at least 1.6.
      echo Please define INSTALL4J_JAVA_HOME to point to a suitable JVM.
      echo You can also try to delete the JVM cache file $HOME/.install4j
    exit 83
    fi
    
    
    
    vmoptions_val=""
    vmoptions_file="$prg_dir/$progname.vmoptions"
    if [ -r "$vmoptions_file" ]; then
      exec 8< "$vmoptions_file"
      while read cur_option<&8; do
        is_comment=`expr "$cur_option" : ' *#.*'`
        if [ "$is_comment" = "0" ]; then 
          vmoptions_val="$vmoptions_val $cur_option"
        fi
      done
      exec 8<&-
    fi
    INSTALL4J_ADD_VM_PARAMS="$INSTALL4J_ADD_VM_PARAMS $vmoptions_val"
    
    local_classpath=""
    add_class_path "$app_home/.install4j/i4jruntime.jar"
    for i in `ls "$app_home/." | egrep "\.(jar$|zip$)"`
    do
      add_class_path "$app_home/./$i"
    done
    
    LD_LIBRARY_PATH="$app_home/.:$LD_LIBRARY_PATH"
    DYLD_LIBRARY_PATH="$app_home/.:$DYLD_LIBRARY_PATH"
    SHLIB_PATH="$app_home/.:$SHLIB_PATH"
    LIBPATH="$app_home/.:$LIBPATH"
    LD_LIBRARYN32_PATH="$app_home/.:$LD_LIBRARYN32_PATH"
    LD_LIBRARYN64_PATH="$app_home/.:$LD_LIBRARYN64_PATH"
    export LD_LIBRARY_PATH
    export DYLD_LIBRARY_PATH
    export SHLIB_PATH
    export LIBPATH
    export LD_LIBRARYN32_PATH
    export LD_LIBRARYN64_PATH
    
    #!/bin/bash
    #
    # Find the amount of physical memory, divide that number by two, and use the
    # result to append a Java heap limit option to the install4j environment
    # variable that determines VM options.
    #
    # If the physical memory exceeds 4GB, then cap the Java heap limit at its
    # intrinsic limit of 2GB.  (GB figures are rounded down, to accomodate slop
    # in how linux counts memory and how Java fails near its limit.)
    
    totalmem=`cat /proc/meminfo | grep MemTotal | sed -r 's/.* ([0-9]+) .*/\1/'`
    fourGB=4000000
    twoGB=2000000
    if [ $totalmem -ge $fourGB ]; then
      maxmem=$twoGB
    else
      maxmem=$(( $totalmem / 2 ))
    fi
    option=-Xmx${maxmem}k
    
    INSTALL4J_ADD_VM_PARAMS="$INSTALL4J_ADD_VM_PARAMS $option"
    
    "$app_java_home/bin/java" -client -Dinstall4j.jvmDir="$app_java_home" -Dinstall4j.appDir="$app_home"  -Dexe4j.moduleName="$prg_dir/$prg" -Dcom.lightcrafts.licensetype=ESD $INSTALL4J_ADD_VM_PARAMS -classpath "$local_classpath" com.install4j.runtime.Launcher launch com.lightcrafts.platform.linux.LinuxLauncher true false "$prg_dir/LightZone.log" "$prg_dir/LightZone.log" false  true false "" true true -1 -1 "" 20 20 "Arial" "0,0,0" 8 500 "" 20 40 "Arial" "0,0,0" 8 500 -1  "$@"
    
    
    exit $?
    ich hoffe, dass das etwas helfen kann.

    grüße

    kimi

  16. #15
    Graue Eminenz Avatar von saeckereier
    Registriert seit
    08.05.2005
    Ort
    Im schönen Norden
    Beiträge
    1.920
    nimm mal nach dem Shebang (#!) das Leerzeichen raus
    Docendo discimus

    Jabber: <mynickname>@unixboard.de
    Infos zum Jabberserver von Unixboard.de


    alias ls="ls | cat | cat | cat | cat | cat | cat | cat"

Ähnliche Themen

  1. FTP-get Shell Script
    Von peterm im Forum Shell-Skripte
    Antworten: 8
    Letzter Beitrag: 13.03.2007, 12:41
  2. Ganz großes Icon aufm Desktop
    Von Always-Godlike im Forum SuSE / OpenSuSE
    Antworten: 8
    Letzter Beitrag: 03.02.2007, 12:49
  3. Thunderbird Icon auf das Desktop
    Von Linux Beginner im Forum Anwendungen
    Antworten: 18
    Letzter Beitrag: 17.11.2006, 13:57
  4. Antworten: 6
    Letzter Beitrag: 18.05.2006, 14:19
  5. Desktop "icon-schriften-farbe" ändern ...
    Von devilz im Forum Gnome
    Antworten: 1
    Letzter Beitrag: 17.02.2005, 19:55

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •