Org-режимінде Ditaa-ді орнату

Мен emacs жұмыс істеу үшін ditaa орнату қиындық туғызады, мұнда

Мен осы код блогын іске қосқым келеді

#+begin_src ditaa :file hello.png :exports results 
  +----------------+
  | Hello World!!! |
  |                |
  +----------------+

#+end_src

Мен оны C-c C-c бағасымен бағаласам Бос png буфері және бұл:

 Error: Unable to access jarfile /home/nalis/emacs-custom-packages/ditaa/ditaa.jar

in a buffer called Shell Command Output

Мен банка файлдарын қысқа аттарға ауыстыруды, жүйе жолында орналасуын көрсетіп, emacs-дан тыс дитаны менің табысқа жетелеуге тырыстым.

Менің ағымдық тобыма арналған ағымдағы конфигурацияларым:

Org Ditaa Jar Path: ~/emacs-custom-packages/ditaa/ditaa.jar
Org Babel Ditaa Java Cmd: java
Org Ditaa Jar Option: -jar

Мен жүгіріп жүрмін: GNU Emacs 24.5.1 (x86_64-unknown-cygwin, GTK + нұсқасы 3.14.13) 2015-06-23 үстел үсті-жаңа

6
Бұл Windows-да болғандықтан, интернеттен қотарылған «сенетін» файлдарға қатысты мәселе болғанын есіме аламын деп ойлаймын. Мүмкін, мұндай нәрсе болуы мүмкін бе? Бірінші қабаттағы файлдық қасиеттерде (Explorer-ге арналған мәтінмәндік мәзірден қолжетімді болуы керек) файлдардан интернеттен файлдарды жүктеу туралы бірдеңе айтатын болады және құсбелгіні белгілеу/белгілеу қажет деп ойлаймын. Сондай-ақ, бұл Java Cigwin арқылы орнатылған ба, әлде бұл Windows Java? Егер бұл кешірек болса, Windows-y жолын беріңіз бе?
қосылды автор Yann Trevin, көзі
Салқын, қуаныштымын.
қосылды автор Yann Trevin, көзі
Менде @melioratus болды, оған қарап, және ол туралы бірдеңе деді, бұл рұқсат мәселесі. Менің java-ді орнату кезінде терезелерде жасалды, ал windows-y жолдары бірдей проблема. Бірақ банктердің өздері туралы ойланамын.
қосылды автор user11045, көзі
@wvxvw Сіз дұрыссыз! Мен оларды қасиеттерден алып тастауға тура келді, енді оларды cmd және minty баннерлерінен жоғары болғанша шақыра аламын, сондықтан мәселенің бөлігі рахмет!
қосылды автор user11045, көзі

3 жауаптар

Бұл әрекетті етіп көріңіз

  1. Find full directory path where emacs expects ditaa.jar to be located.

    This code is copied from ob-ditaa.el

    #+begin_src elisp
    (expand-file-name
                 "ditaa.jar"
          (file-name-as-directory
                (expand-file-name
                    "scripts"
                   (file-name-as-directory
                      (expand-file-name
                          "../contrib"
                         (file-name-directory (org-find-library-dir "org")))))))
    #+end_src
    

    Note: This path in your setup may be different, so you should run the code above to check then adjust the instructions to meet your specific path.

    #+RESULTS:
    : /usr/share/emacs/24.5/lisp/contrib/scripts/ditaa.jar
    
  2. Copy ditaa.jar and DitaaEps.jar into expected directory, e.g. /usr/share/emacs/24.5/lisp/contrib/scripts

  3. Windows specific step - Confirm that ditaa.jar and DitaaEps.jar are unblocked otherwise Windows OS will block execution.

  4. Cygwin specific step - Create call-ditaa.sh wrapper script.

    Note: The Oracle JSE for Windows expects Windows paths not Cygwin paths, so we needed to convert using cygpath command.

    #+begin_src sh :tangle yes :shebang #!/usr/bin/env bash
    
        #
        # Convert to windows file paths.
        #
    
        java $1 $2 "$(cygpath -w $3)" "$(cygpath -w $4)" "$(cygpath -w $5)"
    
    
    #+end_src
    
  5. Cygwin specific Step - Customize org-mode to use wrapper script instead calling java directly.

    Note: I suggest putting call-ditaa.sh script in same directory as ditaa.jar.

    Org Babel Ditaa Java Cmd: /usr/share/emacs/24.5/lisp/contrib/scripts/call-ditaa.sh
    
  6. Customize org-mode to Org Ditaa Jar Path to expected path, e.g. /usr/share/emacs/24.5/lisp/contrib/scripts/ditaa.jar

  7. Apply & Save customization

  8. Test Updated ditaa Settings

    #+begin_src ditaa :file ./helloworld.png
    +----------------+
    | Hello World!!! |
    |                |
    +----------------+
    #+end_src
    
    #+RESULTS:
    [[file:./helloworld.png]]
    
2
қосылды

Melioratus-тің негізі:

 cd .emacs.d/elpa && mkdir contrib
 cd contrib %% mkdir scripts
 cd scripts
 which ditaa   ## I have mine in /usr/local/bin
 ln -s /usr/local/bin/ditaa0_9.jar ditaa.jar
 ln -s /usr/local/bin/DitaaEps.jar DitaaEps.jar

Енді emacs/org-babel табысты табуға болады!

1
қосылды

Мен jar файлдарын жүйе жолына ауыстыру әрекетін жасадым

орнына lib жолын көріңіз немесе осы команданы жүйедегі қателерсіз жұмыс істеп тұрғанын көру үшін терминалда іске қосыңыз:

java -jar ditaaXXX.jar

jar файлына жолды реттеңіз, мұнда xxx нұсқасының нөмірі болып табылады. Егер дұрыс орнатылса, пәрмен жолы параметрлері үшін көмек экранын аласыз.

0
қосылды
/ li/dir /
қосылды автор Emacs User, көзі
Жақсы, ditaa.jar файлын my/lib/каталогына ауыстырдым, және оны ditaa0_9.jar деп атадым, егер мен оны bash-да шақырсам, сол қатені аламын, бірақ мен lib-ге көшу үшін CD-ды қолданған кезде ол жұмыс істейді.
қосылды автор user11045, көзі