Error processing request

Parameters

CONTENT_LENGTH0
REQUEST_METHODGET
REQUEST_URI/revision/JTcl?V=20
QUERY_STRINGV=20
CONTENT_TYPE
DOCUMENT_URI/revision/JTcl
DOCUMENT_ROOT/var/www/nikit/nikit/nginx/../docroot
SCGI1
SERVER_PROTOCOLHTTP/1.1
HTTPSon
REMOTE_ADDR172.70.130.200
REMOTE_PORT33640
SERVER_PORT4443
SERVER_NAMEwiki.tcl-lang.org
HTTP_HOSTwiki.tcl-lang.org
HTTP_CONNECTIONKeep-Alive
HTTP_ACCEPT_ENCODINGgzip, br
HTTP_X_FORWARDED_FOR3.144.42.196
HTTP_CF_RAY8770ca248e5e86da-ORD
HTTP_X_FORWARDED_PROTOhttps
HTTP_CF_VISITOR{"scheme":"https"}
HTTP_ACCEPT*/*
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
HTTP_CF_CONNECTING_IP3.144.42.196
HTTP_CDN_LOOPcloudflare
HTTP_CF_IPCOUNTRYUS

Body


Error

Unknow state transition: LINE -> END

-code

1

-level

0

-errorstack

INNER {returnImm {Unknow state transition: LINE -> END} {}} CALL {my render_wikit JTcl ===none\nWhat:\ '''JTcl'''\nWhere:\ ftp://ftp.gaertner.de/pub/j/jtcl-1.0.tar.gz\ \nDescription:\ \[Java\]\ script\ library\ allowing\ access\ to\ the\ \[Tcl\]\ language.\n\ \ \ \ \ \ \ \ Can\ invoke\ Tcl\ extensions\ such\ as\ \[Tk\],\ allowing\ Java\ programmers\n\ \ \ \ \ \ \ \ to\ create\ GUI\ interfaces\ for\ Java\ applications.\nUpdated:\ 09/2001\nContact:\ mailto:\ [email protected]\n===\n----\n\n\[JTcl\ Interpreter\]\ is\ an\ implementation\ of\ Tcl\ 8.4\ in\ Java.\n\n----\n\n***JTcl\ port\ for\ Android***\n\n(zdia\ 10/2011)\n\nThe\ conditions\ of\ this\ feasibility\ study\ were\n\n\ \ \ *\ Linux\ Salix\ based\ on\ Slackware\ 13.37\ with\ Xfce\n\ \ \ *\ Android\ emulator\ with\ Api\ 8\ (v.\ 2.2)\n\ \ \ *\ javac\ 1.6.0_25\n\ \ \ *\ Android\ SDK\ r14:\ http://dl.google.com/android/android-sdk_r14-linux.tgz\n\ \ \ *\ JTcl-2.0.0\n\ \ \ *\ Apache\ Ant(TM)\ version\ 1.8.2\n\n****Create\ the\ projects\ folders:****\n\nCreate\ an\ Android\ project\ with\ something\ like:\n\n======none\n\$\ android\ create\ project\ \\\n\ \ \ \ --package\ tcl.lang\ \\\n\ \ \ \ --activity\ JTcl\ \\\n\ \ \ \ --target\ 1\ \\\n\ \ \ \ --path\ ~/Projekte/jtcl\n======\nTo\ get\ info\ about\ your\ existing\ existing\ targets:\n======none\n\$\ android\ list\ targets\nAvailable\ Android\ targets:\nid:\ 1\ or\ \"android-8\"\n\ \ \ \ \ Name:\ Android\ 2.2\n\ \ \ \ \ Type:\ Platform\n\ \ \ \ \ API\ level:\ 8\n\ \ \ \ \ Revision:\ 3\n\ \ \ \ \ Skins:\ WVGA854,\ WVGA800\ (default),\ QVGA,\ HVGA,\ WQVGA432,\ WQVGA400\n======\n\n****Prepare\ for\ compilation****\n\nWe\ add\ an\ folder\ ''assets/''\ and\ put\ as\ folder\ ''src/''\ the\ folder\ ''jtcl-2.0.0/src/main/java/tcl/lang''\ of\ Jtcl\ into\ our\ development\ directory.\ We\ have\ still\ to\ put\ the\ ''jtcl-2.0.0/src/main/resources/tcl/lang/library/init.tcl''\ file\ into\ the\ ''assets/''\ folder.\ JTcl\ will\ need\ it\ for\ initialization.\ Finally\ your\ tree\ hierarchy\ should\ look\ similar\ to\ the\ following:\n\n======none\n|--\ AndroidManifest.xml\n|--\ android\n|\ \ \ |--\ bin\n|\ \ \ |\ \ \ |--\ classes\n|\ \ \ |\ \ \ |--\ classes.dex\n|\ \ \ |\ \ \ `--\ jtcl.ap_\n|\ \ \ `--\ jtcl.jar\n|--\ assets\n|\ \ \ `--\ init.tcl\n|--\ bin\n|--\ build\n|--\ build.xml\n|--\ development.txt\n|--\ jtcl.properties\n|--\ libs\n|--\ proguard.cfg\n|--\ res\n|\ \ \ |--\ drawable-hdpi\n|\ \ \ |\ \ \ `--\ icon.png\n|\ \ \ |--\ drawable-ldpi\n|\ \ \ |\ \ \ `--\ icon.png\n|\ \ \ |--\ drawable-mdpi\n|\ \ \ |\ \ \ `--\ icon.png\n|\ \ \ |--\ layout\n|\ \ \ |\ \ \ `--\ main.xml\n|\ \ \ `--\ values\n|\ \ \ \ \ \ \ `--\ strings.xml\n`--\ src\n\ \ \ \ `--\ tcl\n\ \ \ \ \ \ \ \ `--\ lang\n======\n\n****Create\ the\ binary****\n\nThe\ file\ ''jtcl.properties''\ will\ define\ our\ local\ Android\ environment:\n\n======none\n\$\ cat\ jtcl.properties\nsdk-folder=~/Projekte/jtcl\nandroid-tools=~/Programme/android-sdk-linux_x86/tools\nandroid-platform=~/Programme/android-sdk-linux_x86/platforms/android-8\nandroid-platform-tools=~/Programme/android-sdk-linux_x86/platform-tools\n======\n\nThe\ file\ `Interpr.java`\ in\ `src/tcl/lang/`\ has\ to\ be\ modified\ to\ load\ the\ `init.tcl`\ from\ our\ `assets/`\ directory:\n\n======\n\ \ \ \ \ \ //\ evalResource(\"/tcl/lang/library/init.tcl\")\;\n\ \ \ \ \ \ evalResource(\"assets/init.tcl\")\;\n======\n\nThen\ all\ is\ ready\ for\ ant\ which\ will\ be\ fed\ by\ the\ following\ `build.xml`:\n\n======xml\n<?xml\ version=\"1.0\"\ encoding=\"UTF-8\"?>\n\n<!--\nInspirations\ taken\ from\ the\ build.xml\ found\ in\ David\ Weltons\ \"Hecl\ for\ Android\":\nhttp://www.hecl.org/\n-->\n\n<project\ name=\"JTcl\ for\ Android\"\ default=\"help\">\n\n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ Build\ environment\ properties\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\n\ \ <property\ name=\"outdir\"\ value=\"android/bin\"\ />\n\ \ <property\ file=\"jtcl.properties\"\ />\n\ \ <property\ name=\"android.build\"\ value=\"android/bin/classes\"/>\n\ \ <property\ name=\"android-jar\"\ value=\"\$\{android-platform\}/android.jar\"\ />\n\ \ <property\ name=\"dx\"\ value=\"\$\{android-platform-tools\}/dx\"\ />\n\ \ <property\ name=\"dex-file\"\ value=\"classes.dex\"\ />\n\ \ <property\ name=\"intermediate-dex\"\ value=\"\$\{outdir\}/\$\{dex-file\}\"\ />\n\ \ <property\ name=\"aapt\"\ value=\"\$\{android-platform-tools\}/aapt\"\ />\n\ \ <property\ name=\"resource-dir\"\ value=\"res\"\ />\n\ \ <property\ name=\"asset-dir\"\ value=\"assets\"\ />\n\ \ <property\ name=\"srcdir\"\ value=\"src\"\ />\n\ \ <property\ name=\"resources-package\"\ value=\"\$\{outdir\}/jtcl.ap_\"\ />\n\n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ Help\ target\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\n\ \ <target\ name=\"help\">\n\ \ \ \ <echo\ message=\"Possible\ targets:\ compile\ jar\ dex\ aapt\"/>\n\ \ </target>\n\n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ Dirs\ target\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\ \ \n\ \ <target\ name=\"dirs\">\n\ \ \ \ <echo>Creating\ output\ directories\ if\ needed...</echo>\n\ \ \ \ <mkdir\ dir=\"\$\{outdir\}\"/>\n\ \ \ \ <mkdir\ dir=\"\$\{android.build\}\"/>\n\ \ </target>\n\n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ Compilation\ target\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\n\ \ <target\ name=\"compile\"\ description=\"Compile\ the\ code\"\ depends=\ \"dirs\">\n\ \ \ \ <echo>bootclasspath:\ \$\{android-jar\}</echo>\n\ \ \ \ <javac\ destdir=\"\$\{android.build\}\"\n\ \ \ \ \ \ \ \ \ \ \ srcdir=\"src/tcl/lang\"\n\ \ \ \ \ \ \ \ \ \ \ source=\"1.5\"\n\ \ \ \ \ \ \ \ \ \ \ bootclasspath=\"\$\{android-jar\}\"\ >\n\ \ \ \ </javac>\n\ \ </target>\n\ \ \ \n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ Jar\ package\ target\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\ \ \n\ \ <target\ name=\"jtcl-jar\"\ depends=\"compile\">\n\ \ \ \ <echo>\ Building\ android/jtlc.jar\ from\ dir:\ \$\{android.build\}\ ...</echo>\n\ \ \ \ <jar\ destfile=\"android/jtcl.jar\"\ basedir=\"\$\{android.build\}\">\n\ \ \ \ \ \ <manifest>\n\ \ \ \ \ \ \ \ <attribute\ name=\"Main-Class\"\ \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ value=\"tcl.lang.Shell\"/>\n\ \ \ \ \ \ </manifest>\n\ \ \ \ </jar>\n\ \ </target>\n\ \ \ \n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ Dex\ target\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\n\ \ <target\ name=\"dex\"\ depends=\"jtcl-jar\">\n\ \ \ \ <echo>Converting\ compiled\ files\ and\ external\ libraries\ into\ \$\{outdir\}/\$\{dex-file\}...</echo>\n\ \ \ \ <apply\ executable=\"\$\{dx\}\"\ failonerror=\"true\"\ parallel=\"true\">\n\ \ \ \ \ \ <arg\ value=\"-JXmx512m\"\ />\n\ \ \ \ \ \ <arg\ value=\"--dex\"\ />\n\ \ \ \ \ \ <arg\ value=\"--output=\$\{intermediate-dex\}\"\ />\n\ \ \ \ \ \ <arg\ path=\"android/jtcl.jar\"\ />\n\ \ \ \ \ \ <fileset\ dir=\"\$\{android-platform-tools\}/lib\"\ includes=\"*.jar\"/>\n\ \ \ \ </apply>\n\ \ </target>\n\ \ \n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ aapt\ target\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\n\ \ \ <!--\ \n\ \ \ Put\ the\ project's\ resources\ into\ the\ output\ package\ file.\n\ \ \ We\ will\ use\ the\ folder\ assets\ to\ store\ init.tcl.\ An\ Android\ app\ has\ only\ access\n\ \ \ to\ the\ application\ folders,\ no\ chance\ to\ create\ a\ folder:\ /tcl/lang/library/\n\ \ \ \ -->\n\ \ \ \ \n\ \ <target\ name=\"aapt\"\ depends=\"dex\">\n\ \ \ \ <echo>Packaging\ resources\ and\ assets...</echo>\n\ \ \ \ <exec\ executable=\"\$\{aapt\}\"\ failonerror=\"true\">\n\ \ \ \ \ \ <arg\ value=\"package\"\ />\n\ \ \ \ \ \ <arg\ value=\"-f\"\ />\n\ \ \ \ \ \ <arg\ value=\"-M\"\ />\n\ \ \ \ \ \ <arg\ value=\"AndroidManifest.xml\"\ />\n\ \ \ \ \ \ <arg\ value=\"-S\"\ />\n\ \ \ \ \ \ <arg\ value=\"\$\{resource-dir\}\"\ />\n\ \ \ \ \ \ <arg\ value=\"-A\"\ />\n\ \ \ \ \ \ <arg\ value=\"\$\{asset-dir\}\"\ />\n\ \ \ \ \ \ <arg\ value=\"-I\"\ />\n\ \ \ \ \ \ <arg\ value=\"\$\{android-jar\}\"\ />\n\ \ \ \ \ \ <arg\ value=\"-F\"\ />\n\ \ \ \ \ \ <arg\ value=\"\$\{resources-package\}\"\ />\n\ \ \ \ </exec>\n\ \ </target>\n\n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ Cleaning\ up\ target\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\n\ \ <target\ name=\"clean\"\ description=\"Clean\ the\ output\ directory\">\n\ \ \ \ <echo>Deleting\ dir:\ \$\{android.build\}</echo>\n\ \ \ \ <delete\ dir=\"\$\{outdir\}\"/>\n\ \ </target>\n\ \ \n</project>\n======\n\n****Preparing\ test:****\n\nIn\ the\ directory\ `/android/bin`\ we\ will\ find\ now\ the\ executable\ file\ `classes.dex`\ and\ a\ file\ `jtcl.ap_`\ with\ the\ resources\ compiled\ in,\ so\ we\ still\ have\ to\ add\ the\ executable\ to\ our\ `jtcl.ap_`:\n\n\n======none\naapt\ add\ jtcl.ap_\ classes.dex\n======\n\n\nThe\ above\ mentioned\ ''assets/init.tcl''\ still\ has\ to\ be\ modified.\ For\ the\ moment\ we\ have\ no\ tcllib\ files\ in\ our\ assets\ folder\ so\ we\ comment\ out\ autoloading\ of\ tcllib\ packages:\n\n======\n\ \ \ \ #\ set\ dir\ resource:/tcl/pkg/tcllib/library\n\ \ \ \ #\ source\ \$dir/pkgIndex.tcl\n\ \ \ \ puts\ \"Note:\ No\ tcllib\ package\ available\"\n======\n\nNow\ ''jtcl.ap_''\ is\ ready\ for\ a\ test:\n\nWe\ push\ ''jtcl.ap_''\ to\ Android\ assumed\ the\ folder\ `/data/local/bin`\ has\ been\ already\ created\ by\ use\ of\ `adb\ shell`:\n\n======none\n\$\ adb\ push\ jtcl.ap_\ /data/local/bin\n======\n\nAfter\ connection\ to\ a\ running\ Android\ device\ with\ ''adb\ shell''\ you\ call\ JTcl\ with\ its\ entrypoint\ ''tcl.lang.Shell'':\n\n======none\n#\ dalvikvm\ -Xbootclasspath:/system/framework/core.jar\ -classpath\ /data/local/bin/jtcl.ap_\ tcl.lang.Shell\ \n======\n\nThat's\ it.\ Sure,\ you\ can\ use\ this\ call\ inside\ a\ \"Terminal\ emulator\"\ Android\ application.\n\nThe\ next\ steps\ will\ be:\n\n\n\ \ \ *\ Try\ to\ get\ access\ to\ the\ Android\ GUI\ widgets\ by\ using\ JTcl's\ java::*\ commands\n\n\ \ \ *\ To\ make\ a\ clean\ Android\ JTcl.apk\ which\ can\ be\ launched\ by\ click\ executing\ during\ initialization\ not\ only\ init.tcl\ but\ application\ code,\ e.g.\ in\ myscript.tcl\n----\n<<discussion>>\n\[MHo\]\ 2013-03-01:\ The\ tool\ '''paraffin.tcl'''\ doesn't\ work\ for\ me\ (Windows\ XP\ platform).\ The\ command\n======\nset\ jtclJar\ \[ziplib::getClassLocation\ \[java::getinterp\]\]\n======\ngives\ an\ unusable\ filename\ on\ windows,\ with\ a\ leading\ slash\ '/'.\ But\ even\ working\ around\ this,\ somethings\ going\ wrong\ (did\ not\ have\ the\ time\ to\ look\ further\ yet):\n======none\nc:\\Programme\\jtcl-2.4.0>jtcl\ paraffin.tcl\ iskvprep6\ ./iskvprep6\ iskvprep6.bat\ .\ncould\ not\ open\ file\ \".\\echopath\":\ file\ is\ not\ a\ zip\ file\n\ \ \ \ while\ executing\n\"error\ \"could\ not\ open\ file\ \\\"\$fileName\\\":\ file\ is\ not\ a\ zip\ file\"\"\n\ \ \ \ (\"if\"\ then\ script\ line\ 2)\n\ \ \ \ invoked\ from\ within\n\"if\ \{\[java::isnull\ \$ent\]\}\ \{\n\ \ \ \ \ \ \ \ error\ \"could\ not\ open\ file\ \\\"\$fileName\\\":\ file\ is\ not\ a\ zip\ file\"\n\ \ \ \ \}\"\n\ \ \ \ (procedure\ \"ziplib::openInputZip\"\ line\ 16)\n\ \ \ \ invoked\ from\ within\n\"ziplib::openInputZip\ \$jar\"\n\ \ \ \ invoked\ from\ within\n\"set\ jarin\ \[ziplib::openInputZip\ \$jar\]\"\n\ \ \ \ (\"foreach\"\ body\ line\ 5)\n\ \ \ \ invoked\ from\ within\n\"foreach\ jar\ \$jars\ \{\n\ \ \ \ \ \ \ \ if\ \{!\ \[file\ isfile\ \$jar\]\}\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ continue\n\ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ set\ jarin\ \[ziplib::openInputZip\ \$jar\]\n\ \ \ \ \ \ \ \ ziplib::c...\"\n\ \ \ \ (procedure\ \"mkJar\"\ line\ 22)\n\ \ \ \ invoked\ from\ within\n\"mkJar\ \$app\ \$srcdir\ \$start\ \$libdir\"\n\ \ \ \ (procedure\ \"cmdLine\"\ line\ 32)\n\ \ \ \ invoked\ from\ within\n\"cmdLine\"\n\ \ \ \ (file\ \"paraffin.tcl\"\ line\ 79)\n======\n\n\[TP\]\ Could\ you\ file\ a\ bug\ report\ at\ http://kenai.com/bugzilla/buglist.cgi?product=jtcl\ \ ?\ \ Please\ include\ Java\ version,\ and\ the\ pathname\ of\ your\ Java\ installation.\n\[MHo\]:\ No,\ I\ don't,\ because\ doing\ this\ requires\ a\ login/registration.\ The\ JRE\ used\ was\ 1.6.0_41.\n\n\[TP\]\ '''What\ is\ the\ pathname\ of\ your\ Java\ install'''?\ \ Please\ attach\ the\ output\ of\ \"parray\ env\"\ from\ the\ JTcl\ interactive\ shell.\ \ By\ the\ way,\ http://mailinator.com\ is\ useful\ for\ one-time\ email\ addresses\ :-)\n======\n%\ parray\ env\nenv(CLASSPATH)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ C:\\Programme\\jtcl-2.4.0\\\\jtcl-2.4.0.jar\;.\;C:\\Programme\\Java\\jre1.6.0_07\\lib\\ext\\QTJ\nava.zip\nenv(HOME)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ D:\\Home\\Hoffmann\nenv(USER)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ HOFFMANN\nenv(awt.toolkit)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ sun.awt.windows.WToolkit\nenv(file.encoding)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ Cp1252\nenv(file.encoding.pkg)\ \ \ \ \ \ \ \ \ \ \ \ \ =\ sun.io\nenv(file.separator)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ \\\nenv(java.awt.graphicsenv)\ \ \ \ \ \ \ \ \ \ =\ sun.awt.Win32GraphicsEnvironment\nenv(java.awt.printerjob)\ \ \ \ \ \ \ \ \ \ \ =\ sun.awt.windows.WPrinterJob\nenv(java.class.path)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ C:\\Programme\\jtcl-2.4.0\\\\jtcl-2.4.0.jar\;.\;C:\\Programme\\Java\\jre1.6.0_07\\lib\\ext\\QTJ\nava.zip\nenv(java.class.version)\ \ \ \ \ \ \ \ \ \ \ \ =\ 50.0\nenv(java.endorsed.dirs)\ \ \ \ \ \ \ \ \ \ \ \ =\ C:\\Programme\\Java\\jre6\\lib\\endorsed\nenv(java.ext.dirs)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ C:\\Programme\\Java\\jre6\\lib\\ext\;C:\\WINDOWS\\Sun\\Java\\lib\\ext\nenv(java.home)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ C:\\Programme\\Java\\jre6\nenv(java.io.tmpdir)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ d:\\var\\temp\\\nenv(java.library.path)\ \ \ \ \ \ \ \ \ \ \ \ \ =\ C:\\WINDOWS\\system32\;C:\\WINDOWS\\Sun\\Java\\bin\;C:\\WINDOWS\\system32\;C:\\WINDOWS\;C:\\Progr\namme\\Tcl\\bin\;C:\\Programme\\ActiveState\ Komodo\ Edit\ 7\\\;C:\\Programme\\caesar\\OraClientNet\\bin\;C:\\Programme\\caesar\\OraClientN\net\\\;C:\\Programme\\Python27\\\;C:\\Programme\\Python27\\Scripts\;C:\\WINDOWS\\system32\;C:\\WINDOWS\;C:\\WINDOWS\\system32\\WBEM\;c:\\Prog\nramme\\misctool\;d:\\home\\Hoffmann\\pgm\\tcl\\usr\\bin\;c:\\Programme\\sysinternals2\;C:\\Programme\\ResKits\\Tools\\\;C:\\Programme\\Supp\nort\ Tools\\\;C:\\Programme\\Pbx\;C:\\Programme\\Perl\\site\\bin\;C:\\Programme\\Perl\\bin\;c:\\Programme\\Regina\;C:\\Programme\\Lua\\5.1\;C:\n\\Programme\\Lua\\5.1\\clibs\;C:\\Programme\\coreutils\;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\;C:\\Programme\\ooRexx\;C:\\Progra\nmme\\Subversion\\bin\;C:\\Programme\\Gemeinsame\ Dateien\\Acronis\\SnapAPI\\\;C:\\Programme\\Citrix\\System32\\\;C:\\WINDOWS\\system32\\Wi\nndowsPowerShell\\v1.0\;C:\\Programme\\Citrix\\System32\\\;%APPDATA%\\Python\\Scripts\;c:\\programme\\unix2\;C:\\programme\\texlive\\2011\n\\bin\\win32\;c:\\programme\\mingw\\bin\;c:\\Programme\\MinGW\\msys\\1.0\\bin\;\;.\nenv(java.runtime.name)\ \ \ \ \ \ \ \ \ \ \ \ \ =\ Java(TM)\ SE\ Runtime\ Environment\nenv(java.runtime.version)\ \ \ \ \ \ \ \ \ \ =\ 1.6.0_41-b02\nenv(java.specification.name)\ \ \ \ \ \ \ =\ Java\ Platform\ API\ Specification\nenv(java.specification.vendor)\ \ \ \ \ =\ Sun\ Microsystems\ Inc.\nenv(java.specification.version)\ \ \ \ =\ 1.6\nenv(java.vendor)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ Sun\ Microsystems\ Inc.\nenv(java.vendor.url)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ http://java.sun.com/\nenv(java.vendor.url.bug)\ \ \ \ \ \ \ \ \ \ \ =\ http://java.sun.com/cgi-bin/bugreport.cgi\nenv(java.version)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ 1.6.0_41\nenv(java.vm.info)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ mixed\ mode,\ sharing\nenv(java.vm.name)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ Java\ HotSpot(TM)\ Client\ VM\nenv(java.vm.specification.name)\ \ \ \ =\ Java\ Virtual\ Machine\ Specification\nenv(java.vm.specification.vendor)\ \ =\ Sun\ Microsystems\ Inc.\nenv(java.vm.specification.version)\ =\ 1.0\nenv(java.vm.vendor)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ Sun\ Microsystems\ Inc.\nenv(java.vm.version)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ 20.14-b01\nenv(line.separator)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\n\nenv(os.arch)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ x86\nenv(os.name)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ Windows\ XP\nenv(os.version)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ 5.1\nenv(path.separator)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ \;\nenv(sun.arch.data.model)\ \ \ \ \ \ \ \ \ \ \ =\ 32\nenv(sun.boot.class.path)\ \ \ \ \ \ \ \ \ \ \ =\ C:\\Programme\\Java\\jre6\\lib\\resources.jar\;C:\\Programme\\Java\\jre6\\lib\\rt.jar\;C:\\Progr\namme\\Java\\jre6\\lib\\sunrsasign.jar\;C:\\Programme\\Java\\jre6\\lib\\jsse.jar\;C:\\Programme\\Java\\jre6\\lib\\jce.jar\;C:\\Programme\\Ja\nva\\jre6\\lib\\charsets.jar\;C:\\Programme\\Java\\jre6\\lib\\modules\\jdk.boot.jar\;C:\\Programme\\Java\\jre6\\classes\nenv(sun.boot.library.path)\ \ \ \ \ \ \ \ \ =\ C:\\Programme\\Java\\jre6\\bin\nenv(sun.cpu.endian)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ little\nenv(sun.cpu.isalist)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ pentium_pro+mmx\ pentium_pro\ pentium+mmx\ pentium\ i486\ i386\ i86\nenv(sun.desktop)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ windows\nenv(sun.io.unicode.encoding)\ \ \ \ \ \ \ =\ UnicodeLittle\nenv(sun.java.command)\ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ tcl.lang.Shell\nenv(sun.java.launcher)\ \ \ \ \ \ \ \ \ \ \ \ \ =\ SUN_STANDARD\nenv(sun.jnu.encoding)\ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ Cp1252\nenv(sun.management.compiler)\ \ \ \ \ \ \ =\ HotSpot\ Client\ Compiler\nenv(sun.os.patch.level)\ \ \ \ \ \ \ \ \ \ \ \ =\ Service\ Pack\ 3\nenv(user.country)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ DE\nenv(user.dir)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ C:\\Programme\\jtcl-2.4.0\nenv(user.home)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ D:\\Home\\Hoffmann\nenv(user.language)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ de\nenv(user.name)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ HOFFMANN\nenv(user.timezone)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\nenv(user.variant)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\n%\n======\n\n\n\[TP\]\ I\ think\ I\ might\ see\ your\ problem,\ look\ at\ your\ command\ line:\n\nc:\\Programme\\jtcl-2.4.0>jtcl\ paraffin.tcl\ iskvprep6\ ./iskvprep6\ iskvprep6.bat\ .\n\nThe\ parameters\ to\ paraffin.tcl\ are\ '''app-name\ \ source-directory\ \ start-file\ \ \[\[\ jar-directory\ \]\]'''\n\n'''start-file'''\ should\ be\ the\ Tcl\ file\ that\ is\ your\ main\ script,\ not\ a\ batch\ file.\ \ \n'''jar-directory'''\ should\ be\ a\ directory\ that\ only\ contains\ the\ additional\ jar\ files\ you\ need\ for\ your\ application.\ \ You\ are\ using\ \".\"\ as\ the\ jar-directory,\ which\ probably\ contains\ files\ other\ than\ jar\ files.\ \ Does\ your\ application\ require\ additional\ jar\ files?\ \ If\ so,\ place\ all\ of\ those\ jar\ files\ in\ a\ clean\ directory.\n\nSee\ the\ example\ at:\ http://jtcl.kenai.com/docs/paraffin.html\ for\ more\ information.\n\n\[MHo\]:\ iskvprep6.bat\ ''is''\ a\ tcl\ script.\ Some\ scripts\ that\ I\ write\ allways\ start\ this\ way:\n======\n#!/bin/sh\n#\ \\\nexec\ /iskv/tools/tclkitsh\ \"\$0\"\ \$\{1+\"\$@\"\}\n::if\ 0\ \{\n@cls\[email protected]\ \"%~dpn0.bat\"\ %*\n@goto\ :EOF\n\}\n\n:\n:\n======\nAnd\ I\ don't\ need\ additional\ JARs,\ I\ think.\ But\ of\ course\ I\ will\ look\ at\ the\ example.\n\n\[MHo\]\ 2013-03-08:\ Don't\ know\ what\ I\ made\ different\ than\ before\ (besides\ looking\ at\ the\ documentation\ page\ which\ I\ missed\ before),\ but\ the\ paraffin\ step\ now\ works\ ok\ and\ produces\ a\ .jar\ file.\ Running\ the\ .jar\ file\ gives\ the\ following\ error:\n======\nC:\\Programme\\jtcl-2.4.0>java\ -jar\ iskvprep6.jar\ncould\ not\ read\ \"resource:tcl/app/iskvprep6.bat\":\ no\ such\ file\ or\ directory\n\ \ \ \ while\ executing\n\"file\ mtime\ \[info\ script\"\n\ \ \ \ invoked\ from\ within\n\"clock\ format\ \[file\ mtime\ \[info\ script\]\]\ -format\ %d.%m.%Y\"\n\ \ \ \ invoked\ from\ within\n\"puts\ stderr\ \"\n\$script\ -\ \[clock\ format\ \[file\ mtime\ \[info\ script\]\]\ -format\ %d.%m.%Y\]\ -\ Anlegen\ von\ Unix-Gruppen,\ -Be\nnutzern\ und\ HomeDirs\ fuer\ 21c\n\nAufru...\"\n\ \ \ \ (\"if\"\ then\ script\ line\ 2)\n\ \ \ \ invoked\ from\ within\n\"if\ \{\$argc\ ==\ 0\ ||\ \$cIx\ <\ 0\}\ \{\n\ \ \ puts\ stderr\ \"\n\$script\ -\ \[clock\ format\ \[file\ mtime\ \[info\ script\]\]\ -format\ %d.%m.%Y\]\ -\\\nAnlegen\ von\ Unix-Gruppen,\ -Benu...\"\n======\n\[TP\]\ This\ error\ is\ from\ the\ '''file'''\ command\ not\ understanding\ the\ '''resource:'''\ convention.\ \ Instead\ of\ a\ true\ virtual\ file\ system\ (like\ C/Tcl),\ JTcl\ only\ recognizes\ resource:\ in\ '''open'''\ and\ '''source'''\ commands.\ \ To\ make\ this\ work,\ you'll\ have\ to\ modify\ your\ application\ to\ not\ use\ '''file'''\ on\ a\ resource:\ pathname.\ \n\n\[MHo\]:\ Then,\ how\ to\ get\ the\ filetime\ of\ the\ script\ itself?\n<<categories>>\ Application\ |\ Graphics regexp2} CALL {my render JTcl ===none\nWhat:\ '''JTcl'''\nWhere:\ ftp://ftp.gaertner.de/pub/j/jtcl-1.0.tar.gz\ \nDescription:\ \[Java\]\ script\ library\ allowing\ access\ to\ the\ \[Tcl\]\ language.\n\ \ \ \ \ \ \ \ Can\ invoke\ Tcl\ extensions\ such\ as\ \[Tk\],\ allowing\ Java\ programmers\n\ \ \ \ \ \ \ \ to\ create\ GUI\ interfaces\ for\ Java\ applications.\nUpdated:\ 09/2001\nContact:\ mailto:\ [email protected]\n===\n----\n\n\[JTcl\ Interpreter\]\ is\ an\ implementation\ of\ Tcl\ 8.4\ in\ Java.\n\n----\n\n***JTcl\ port\ for\ Android***\n\n(zdia\ 10/2011)\n\nThe\ conditions\ of\ this\ feasibility\ study\ were\n\n\ \ \ *\ Linux\ Salix\ based\ on\ Slackware\ 13.37\ with\ Xfce\n\ \ \ *\ Android\ emulator\ with\ Api\ 8\ (v.\ 2.2)\n\ \ \ *\ javac\ 1.6.0_25\n\ \ \ *\ Android\ SDK\ r14:\ http://dl.google.com/android/android-sdk_r14-linux.tgz\n\ \ \ *\ JTcl-2.0.0\n\ \ \ *\ Apache\ Ant(TM)\ version\ 1.8.2\n\n****Create\ the\ projects\ folders:****\n\nCreate\ an\ Android\ project\ with\ something\ like:\n\n======none\n\$\ android\ create\ project\ \\\n\ \ \ \ --package\ tcl.lang\ \\\n\ \ \ \ --activity\ JTcl\ \\\n\ \ \ \ --target\ 1\ \\\n\ \ \ \ --path\ ~/Projekte/jtcl\n======\nTo\ get\ info\ about\ your\ existing\ existing\ targets:\n======none\n\$\ android\ list\ targets\nAvailable\ Android\ targets:\nid:\ 1\ or\ \"android-8\"\n\ \ \ \ \ Name:\ Android\ 2.2\n\ \ \ \ \ Type:\ Platform\n\ \ \ \ \ API\ level:\ 8\n\ \ \ \ \ Revision:\ 3\n\ \ \ \ \ Skins:\ WVGA854,\ WVGA800\ (default),\ QVGA,\ HVGA,\ WQVGA432,\ WQVGA400\n======\n\n****Prepare\ for\ compilation****\n\nWe\ add\ an\ folder\ ''assets/''\ and\ put\ as\ folder\ ''src/''\ the\ folder\ ''jtcl-2.0.0/src/main/java/tcl/lang''\ of\ Jtcl\ into\ our\ development\ directory.\ We\ have\ still\ to\ put\ the\ ''jtcl-2.0.0/src/main/resources/tcl/lang/library/init.tcl''\ file\ into\ the\ ''assets/''\ folder.\ JTcl\ will\ need\ it\ for\ initialization.\ Finally\ your\ tree\ hierarchy\ should\ look\ similar\ to\ the\ following:\n\n======none\n|--\ AndroidManifest.xml\n|--\ android\n|\ \ \ |--\ bin\n|\ \ \ |\ \ \ |--\ classes\n|\ \ \ |\ \ \ |--\ classes.dex\n|\ \ \ |\ \ \ `--\ jtcl.ap_\n|\ \ \ `--\ jtcl.jar\n|--\ assets\n|\ \ \ `--\ init.tcl\n|--\ bin\n|--\ build\n|--\ build.xml\n|--\ development.txt\n|--\ jtcl.properties\n|--\ libs\n|--\ proguard.cfg\n|--\ res\n|\ \ \ |--\ drawable-hdpi\n|\ \ \ |\ \ \ `--\ icon.png\n|\ \ \ |--\ drawable-ldpi\n|\ \ \ |\ \ \ `--\ icon.png\n|\ \ \ |--\ drawable-mdpi\n|\ \ \ |\ \ \ `--\ icon.png\n|\ \ \ |--\ layout\n|\ \ \ |\ \ \ `--\ main.xml\n|\ \ \ `--\ values\n|\ \ \ \ \ \ \ `--\ strings.xml\n`--\ src\n\ \ \ \ `--\ tcl\n\ \ \ \ \ \ \ \ `--\ lang\n======\n\n****Create\ the\ binary****\n\nThe\ file\ ''jtcl.properties''\ will\ define\ our\ local\ Android\ environment:\n\n======none\n\$\ cat\ jtcl.properties\nsdk-folder=~/Projekte/jtcl\nandroid-tools=~/Programme/android-sdk-linux_x86/tools\nandroid-platform=~/Programme/android-sdk-linux_x86/platforms/android-8\nandroid-platform-tools=~/Programme/android-sdk-linux_x86/platform-tools\n======\n\nThe\ file\ `Interpr.java`\ in\ `src/tcl/lang/`\ has\ to\ be\ modified\ to\ load\ the\ `init.tcl`\ from\ our\ `assets/`\ directory:\n\n======\n\ \ \ \ \ \ //\ evalResource(\"/tcl/lang/library/init.tcl\")\;\n\ \ \ \ \ \ evalResource(\"assets/init.tcl\")\;\n======\n\nThen\ all\ is\ ready\ for\ ant\ which\ will\ be\ fed\ by\ the\ following\ `build.xml`:\n\n======xml\n<?xml\ version=\"1.0\"\ encoding=\"UTF-8\"?>\n\n<!--\nInspirations\ taken\ from\ the\ build.xml\ found\ in\ David\ Weltons\ \"Hecl\ for\ Android\":\nhttp://www.hecl.org/\n-->\n\n<project\ name=\"JTcl\ for\ Android\"\ default=\"help\">\n\n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ Build\ environment\ properties\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\n\ \ <property\ name=\"outdir\"\ value=\"android/bin\"\ />\n\ \ <property\ file=\"jtcl.properties\"\ />\n\ \ <property\ name=\"android.build\"\ value=\"android/bin/classes\"/>\n\ \ <property\ name=\"android-jar\"\ value=\"\$\{android-platform\}/android.jar\"\ />\n\ \ <property\ name=\"dx\"\ value=\"\$\{android-platform-tools\}/dx\"\ />\n\ \ <property\ name=\"dex-file\"\ value=\"classes.dex\"\ />\n\ \ <property\ name=\"intermediate-dex\"\ value=\"\$\{outdir\}/\$\{dex-file\}\"\ />\n\ \ <property\ name=\"aapt\"\ value=\"\$\{android-platform-tools\}/aapt\"\ />\n\ \ <property\ name=\"resource-dir\"\ value=\"res\"\ />\n\ \ <property\ name=\"asset-dir\"\ value=\"assets\"\ />\n\ \ <property\ name=\"srcdir\"\ value=\"src\"\ />\n\ \ <property\ name=\"resources-package\"\ value=\"\$\{outdir\}/jtcl.ap_\"\ />\n\n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ Help\ target\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\n\ \ <target\ name=\"help\">\n\ \ \ \ <echo\ message=\"Possible\ targets:\ compile\ jar\ dex\ aapt\"/>\n\ \ </target>\n\n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ Dirs\ target\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\ \ \n\ \ <target\ name=\"dirs\">\n\ \ \ \ <echo>Creating\ output\ directories\ if\ needed...</echo>\n\ \ \ \ <mkdir\ dir=\"\$\{outdir\}\"/>\n\ \ \ \ <mkdir\ dir=\"\$\{android.build\}\"/>\n\ \ </target>\n\n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ Compilation\ target\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\n\ \ <target\ name=\"compile\"\ description=\"Compile\ the\ code\"\ depends=\ \"dirs\">\n\ \ \ \ <echo>bootclasspath:\ \$\{android-jar\}</echo>\n\ \ \ \ <javac\ destdir=\"\$\{android.build\}\"\n\ \ \ \ \ \ \ \ \ \ \ srcdir=\"src/tcl/lang\"\n\ \ \ \ \ \ \ \ \ \ \ source=\"1.5\"\n\ \ \ \ \ \ \ \ \ \ \ bootclasspath=\"\$\{android-jar\}\"\ >\n\ \ \ \ </javac>\n\ \ </target>\n\ \ \ \n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ Jar\ package\ target\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\ \ \n\ \ <target\ name=\"jtcl-jar\"\ depends=\"compile\">\n\ \ \ \ <echo>\ Building\ android/jtlc.jar\ from\ dir:\ \$\{android.build\}\ ...</echo>\n\ \ \ \ <jar\ destfile=\"android/jtcl.jar\"\ basedir=\"\$\{android.build\}\">\n\ \ \ \ \ \ <manifest>\n\ \ \ \ \ \ \ \ <attribute\ name=\"Main-Class\"\ \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ value=\"tcl.lang.Shell\"/>\n\ \ \ \ \ \ </manifest>\n\ \ \ \ </jar>\n\ \ </target>\n\ \ \ \n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ Dex\ target\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\n\ \ <target\ name=\"dex\"\ depends=\"jtcl-jar\">\n\ \ \ \ <echo>Converting\ compiled\ files\ and\ external\ libraries\ into\ \$\{outdir\}/\$\{dex-file\}...</echo>\n\ \ \ \ <apply\ executable=\"\$\{dx\}\"\ failonerror=\"true\"\ parallel=\"true\">\n\ \ \ \ \ \ <arg\ value=\"-JXmx512m\"\ />\n\ \ \ \ \ \ <arg\ value=\"--dex\"\ />\n\ \ \ \ \ \ <arg\ value=\"--output=\$\{intermediate-dex\}\"\ />\n\ \ \ \ \ \ <arg\ path=\"android/jtcl.jar\"\ />\n\ \ \ \ \ \ <fileset\ dir=\"\$\{android-platform-tools\}/lib\"\ includes=\"*.jar\"/>\n\ \ \ \ </apply>\n\ \ </target>\n\ \ \n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ aapt\ target\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\n\ \ \ <!--\ \n\ \ \ Put\ the\ project's\ resources\ into\ the\ output\ package\ file.\n\ \ \ We\ will\ use\ the\ folder\ assets\ to\ store\ init.tcl.\ An\ Android\ app\ has\ only\ access\n\ \ \ to\ the\ application\ folders,\ no\ chance\ to\ create\ a\ folder:\ /tcl/lang/library/\n\ \ \ \ -->\n\ \ \ \ \n\ \ <target\ name=\"aapt\"\ depends=\"dex\">\n\ \ \ \ <echo>Packaging\ resources\ and\ assets...</echo>\n\ \ \ \ <exec\ executable=\"\$\{aapt\}\"\ failonerror=\"true\">\n\ \ \ \ \ \ <arg\ value=\"package\"\ />\n\ \ \ \ \ \ <arg\ value=\"-f\"\ />\n\ \ \ \ \ \ <arg\ value=\"-M\"\ />\n\ \ \ \ \ \ <arg\ value=\"AndroidManifest.xml\"\ />\n\ \ \ \ \ \ <arg\ value=\"-S\"\ />\n\ \ \ \ \ \ <arg\ value=\"\$\{resource-dir\}\"\ />\n\ \ \ \ \ \ <arg\ value=\"-A\"\ />\n\ \ \ \ \ \ <arg\ value=\"\$\{asset-dir\}\"\ />\n\ \ \ \ \ \ <arg\ value=\"-I\"\ />\n\ \ \ \ \ \ <arg\ value=\"\$\{android-jar\}\"\ />\n\ \ \ \ \ \ <arg\ value=\"-F\"\ />\n\ \ \ \ \ \ <arg\ value=\"\$\{resources-package\}\"\ />\n\ \ \ \ </exec>\n\ \ </target>\n\n\ \ <!--\ ======================================================================\ -->\n\ \ <!--\ Cleaning\ up\ target\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ -->\n\ \ <!--\ ======================================================================\ -->\n\n\ \ <target\ name=\"clean\"\ description=\"Clean\ the\ output\ directory\">\n\ \ \ \ <echo>Deleting\ dir:\ \$\{android.build\}</echo>\n\ \ \ \ <delete\ dir=\"\$\{outdir\}\"/>\n\ \ </target>\n\ \ \n</project>\n======\n\n****Preparing\ test:****\n\nIn\ the\ directory\ `/android/bin`\ we\ will\ find\ now\ the\ executable\ file\ `classes.dex`\ and\ a\ file\ `jtcl.ap_`\ with\ the\ resources\ compiled\ in,\ so\ we\ still\ have\ to\ add\ the\ executable\ to\ our\ `jtcl.ap_`:\n\n\n======none\naapt\ add\ jtcl.ap_\ classes.dex\n======\n\n\nThe\ above\ mentioned\ ''assets/init.tcl''\ still\ has\ to\ be\ modified.\ For\ the\ moment\ we\ have\ no\ tcllib\ files\ in\ our\ assets\ folder\ so\ we\ comment\ out\ autoloading\ of\ tcllib\ packages:\n\n======\n\ \ \ \ #\ set\ dir\ resource:/tcl/pkg/tcllib/library\n\ \ \ \ #\ source\ \$dir/pkgIndex.tcl\n\ \ \ \ puts\ \"Note:\ No\ tcllib\ package\ available\"\n======\n\nNow\ ''jtcl.ap_''\ is\ ready\ for\ a\ test:\n\nWe\ push\ ''jtcl.ap_''\ to\ Android\ assumed\ the\ folder\ `/data/local/bin`\ has\ been\ already\ created\ by\ use\ of\ `adb\ shell`:\n\n======none\n\$\ adb\ push\ jtcl.ap_\ /data/local/bin\n======\n\nAfter\ connection\ to\ a\ running\ Android\ device\ with\ ''adb\ shell''\ you\ call\ JTcl\ with\ its\ entrypoint\ ''tcl.lang.Shell'':\n\n======none\n#\ dalvikvm\ -Xbootclasspath:/system/framework/core.jar\ -classpath\ /data/local/bin/jtcl.ap_\ tcl.lang.Shell\ \n======\n\nThat's\ it.\ Sure,\ you\ can\ use\ this\ call\ inside\ a\ \"Terminal\ emulator\"\ Android\ application.\n\nThe\ next\ steps\ will\ be:\n\n\n\ \ \ *\ Try\ to\ get\ access\ to\ the\ Android\ GUI\ widgets\ by\ using\ JTcl's\ java::*\ commands\n\n\ \ \ *\ To\ make\ a\ clean\ Android\ JTcl.apk\ which\ can\ be\ launched\ by\ click\ executing\ during\ initialization\ not\ only\ init.tcl\ but\ application\ code,\ e.g.\ in\ myscript.tcl\n----\n<<discussion>>\n\[MHo\]\ 2013-03-01:\ The\ tool\ '''paraffin.tcl'''\ doesn't\ work\ for\ me\ (Windows\ XP\ platform).\ The\ command\n======\nset\ jtclJar\ \[ziplib::getClassLocation\ \[java::getinterp\]\]\n======\ngives\ an\ unusable\ filename\ on\ windows,\ with\ a\ leading\ slash\ '/'.\ But\ even\ working\ around\ this,\ somethings\ going\ wrong\ (did\ not\ have\ the\ time\ to\ look\ further\ yet):\n======none\nc:\\Programme\\jtcl-2.4.0>jtcl\ paraffin.tcl\ iskvprep6\ ./iskvprep6\ iskvprep6.bat\ .\ncould\ not\ open\ file\ \".\\echopath\":\ file\ is\ not\ a\ zip\ file\n\ \ \ \ while\ executing\n\"error\ \"could\ not\ open\ file\ \\\"\$fileName\\\":\ file\ is\ not\ a\ zip\ file\"\"\n\ \ \ \ (\"if\"\ then\ script\ line\ 2)\n\ \ \ \ invoked\ from\ within\n\"if\ \{\[java::isnull\ \$ent\]\}\ \{\n\ \ \ \ \ \ \ \ error\ \"could\ not\ open\ file\ \\\"\$fileName\\\":\ file\ is\ not\ a\ zip\ file\"\n\ \ \ \ \}\"\n\ \ \ \ (procedure\ \"ziplib::openInputZip\"\ line\ 16)\n\ \ \ \ invoked\ from\ within\n\"ziplib::openInputZip\ \$jar\"\n\ \ \ \ invoked\ from\ within\n\"set\ jarin\ \[ziplib::openInputZip\ \$jar\]\"\n\ \ \ \ (\"foreach\"\ body\ line\ 5)\n\ \ \ \ invoked\ from\ within\n\"foreach\ jar\ \$jars\ \{\n\ \ \ \ \ \ \ \ if\ \{!\ \[file\ isfile\ \$jar\]\}\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ continue\n\ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ set\ jarin\ \[ziplib::openInputZip\ \$jar\]\n\ \ \ \ \ \ \ \ ziplib::c...\"\n\ \ \ \ (procedure\ \"mkJar\"\ line\ 22)\n\ \ \ \ invoked\ from\ within\n\"mkJar\ \$app\ \$srcdir\ \$start\ \$libdir\"\n\ \ \ \ (procedure\ \"cmdLine\"\ line\ 32)\n\ \ \ \ invoked\ from\ within\n\"cmdLine\"\n\ \ \ \ (file\ \"paraffin.tcl\"\ line\ 79)\n======\n\n\[TP\]\ Could\ you\ file\ a\ bug\ report\ at\ http://kenai.com/bugzilla/buglist.cgi?product=jtcl\ \ ?\ \ Please\ include\ Java\ version,\ and\ the\ pathname\ of\ your\ Java\ installation.\n\[MHo\]:\ No,\ I\ don't,\ because\ doing\ this\ requires\ a\ login/registration.\ The\ JRE\ used\ was\ 1.6.0_41.\n\n\[TP\]\ '''What\ is\ the\ pathname\ of\ your\ Java\ install'''?\ \ Please\ attach\ the\ output\ of\ \"parray\ env\"\ from\ the\ JTcl\ interactive\ shell.\ \ By\ the\ way,\ http://mailinator.com\ is\ useful\ for\ one-time\ email\ addresses\ :-)\n======\n%\ parray\ env\nenv(CLASSPATH)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ C:\\Programme\\jtcl-2.4.0\\\\jtcl-2.4.0.jar\;.\;C:\\Programme\\Java\\jre1.6.0_07\\lib\\ext\\QTJ\nava.zip\nenv(HOME)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ D:\\Home\\Hoffmann\nenv(USER)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ HOFFMANN\nenv(awt.toolkit)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ sun.awt.windows.WToolkit\nenv(file.encoding)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ Cp1252\nenv(file.encoding.pkg)\ \ \ \ \ \ \ \ \ \ \ \ \ =\ sun.io\nenv(file.separator)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ \\\nenv(java.awt.graphicsenv)\ \ \ \ \ \ \ \ \ \ =\ sun.awt.Win32GraphicsEnvironment\nenv(java.awt.printerjob)\ \ \ \ \ \ \ \ \ \ \ =\ sun.awt.windows.WPrinterJob\nenv(java.class.path)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ C:\\Programme\\jtcl-2.4.0\\\\jtcl-2.4.0.jar\;.\;C:\\Programme\\Java\\jre1.6.0_07\\lib\\ext\\QTJ\nava.zip\nenv(java.class.version)\ \ \ \ \ \ \ \ \ \ \ \ =\ 50.0\nenv(java.endorsed.dirs)\ \ \ \ \ \ \ \ \ \ \ \ =\ C:\\Programme\\Java\\jre6\\lib\\endorsed\nenv(java.ext.dirs)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ C:\\Programme\\Java\\jre6\\lib\\ext\;C:\\WINDOWS\\Sun\\Java\\lib\\ext\nenv(java.home)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ C:\\Programme\\Java\\jre6\nenv(java.io.tmpdir)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ d:\\var\\temp\\\nenv(java.library.path)\ \ \ \ \ \ \ \ \ \ \ \ \ =\ C:\\WINDOWS\\system32\;C:\\WINDOWS\\Sun\\Java\\bin\;C:\\WINDOWS\\system32\;C:\\WINDOWS\;C:\\Progr\namme\\Tcl\\bin\;C:\\Programme\\ActiveState\ Komodo\ Edit\ 7\\\;C:\\Programme\\caesar\\OraClientNet\\bin\;C:\\Programme\\caesar\\OraClientN\net\\\;C:\\Programme\\Python27\\\;C:\\Programme\\Python27\\Scripts\;C:\\WINDOWS\\system32\;C:\\WINDOWS\;C:\\WINDOWS\\system32\\WBEM\;c:\\Prog\nramme\\misctool\;d:\\home\\Hoffmann\\pgm\\tcl\\usr\\bin\;c:\\Programme\\sysinternals2\;C:\\Programme\\ResKits\\Tools\\\;C:\\Programme\\Supp\nort\ Tools\\\;C:\\Programme\\Pbx\;C:\\Programme\\Perl\\site\\bin\;C:\\Programme\\Perl\\bin\;c:\\Programme\\Regina\;C:\\Programme\\Lua\\5.1\;C:\n\\Programme\\Lua\\5.1\\clibs\;C:\\Programme\\coreutils\;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\;C:\\Programme\\ooRexx\;C:\\Progra\nmme\\Subversion\\bin\;C:\\Programme\\Gemeinsame\ Dateien\\Acronis\\SnapAPI\\\;C:\\Programme\\Citrix\\System32\\\;C:\\WINDOWS\\system32\\Wi\nndowsPowerShell\\v1.0\;C:\\Programme\\Citrix\\System32\\\;%APPDATA%\\Python\\Scripts\;c:\\programme\\unix2\;C:\\programme\\texlive\\2011\n\\bin\\win32\;c:\\programme\\mingw\\bin\;c:\\Programme\\MinGW\\msys\\1.0\\bin\;\;.\nenv(java.runtime.name)\ \ \ \ \ \ \ \ \ \ \ \ \ =\ Java(TM)\ SE\ Runtime\ Environment\nenv(java.runtime.version)\ \ \ \ \ \ \ \ \ \ =\ 1.6.0_41-b02\nenv(java.specification.name)\ \ \ \ \ \ \ =\ Java\ Platform\ API\ Specification\nenv(java.specification.vendor)\ \ \ \ \ =\ Sun\ Microsystems\ Inc.\nenv(java.specification.version)\ \ \ \ =\ 1.6\nenv(java.vendor)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ Sun\ Microsystems\ Inc.\nenv(java.vendor.url)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ http://java.sun.com/\nenv(java.vendor.url.bug)\ \ \ \ \ \ \ \ \ \ \ =\ http://java.sun.com/cgi-bin/bugreport.cgi\nenv(java.version)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ 1.6.0_41\nenv(java.vm.info)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ mixed\ mode,\ sharing\nenv(java.vm.name)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ Java\ HotSpot(TM)\ Client\ VM\nenv(java.vm.specification.name)\ \ \ \ =\ Java\ Virtual\ Machine\ Specification\nenv(java.vm.specification.vendor)\ \ =\ Sun\ Microsystems\ Inc.\nenv(java.vm.specification.version)\ =\ 1.0\nenv(java.vm.vendor)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ Sun\ Microsystems\ Inc.\nenv(java.vm.version)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ 20.14-b01\nenv(line.separator)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\n\nenv(os.arch)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ x86\nenv(os.name)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ Windows\ XP\nenv(os.version)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ 5.1\nenv(path.separator)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ \;\nenv(sun.arch.data.model)\ \ \ \ \ \ \ \ \ \ \ =\ 32\nenv(sun.boot.class.path)\ \ \ \ \ \ \ \ \ \ \ =\ C:\\Programme\\Java\\jre6\\lib\\resources.jar\;C:\\Programme\\Java\\jre6\\lib\\rt.jar\;C:\\Progr\namme\\Java\\jre6\\lib\\sunrsasign.jar\;C:\\Programme\\Java\\jre6\\lib\\jsse.jar\;C:\\Programme\\Java\\jre6\\lib\\jce.jar\;C:\\Programme\\Ja\nva\\jre6\\lib\\charsets.jar\;C:\\Programme\\Java\\jre6\\lib\\modules\\jdk.boot.jar\;C:\\Programme\\Java\\jre6\\classes\nenv(sun.boot.library.path)\ \ \ \ \ \ \ \ \ =\ C:\\Programme\\Java\\jre6\\bin\nenv(sun.cpu.endian)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ little\nenv(sun.cpu.isalist)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ pentium_pro+mmx\ pentium_pro\ pentium+mmx\ pentium\ i486\ i386\ i86\nenv(sun.desktop)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ windows\nenv(sun.io.unicode.encoding)\ \ \ \ \ \ \ =\ UnicodeLittle\nenv(sun.java.command)\ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ tcl.lang.Shell\nenv(sun.java.launcher)\ \ \ \ \ \ \ \ \ \ \ \ \ =\ SUN_STANDARD\nenv(sun.jnu.encoding)\ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ Cp1252\nenv(sun.management.compiler)\ \ \ \ \ \ \ =\ HotSpot\ Client\ Compiler\nenv(sun.os.patch.level)\ \ \ \ \ \ \ \ \ \ \ \ =\ Service\ Pack\ 3\nenv(user.country)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ DE\nenv(user.dir)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ C:\\Programme\\jtcl-2.4.0\nenv(user.home)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ D:\\Home\\Hoffmann\nenv(user.language)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ de\nenv(user.name)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ HOFFMANN\nenv(user.timezone)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\nenv(user.variant)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\n%\n======\n\n\n\[TP\]\ I\ think\ I\ might\ see\ your\ problem,\ look\ at\ your\ command\ line:\n\nc:\\Programme\\jtcl-2.4.0>jtcl\ paraffin.tcl\ iskvprep6\ ./iskvprep6\ iskvprep6.bat\ .\n\nThe\ parameters\ to\ paraffin.tcl\ are\ '''app-name\ \ source-directory\ \ start-file\ \ \[\[\ jar-directory\ \]\]'''\n\n'''start-file'''\ should\ be\ the\ Tcl\ file\ that\ is\ your\ main\ script,\ not\ a\ batch\ file.\ \ \n'''jar-directory'''\ should\ be\ a\ directory\ that\ only\ contains\ the\ additional\ jar\ files\ you\ need\ for\ your\ application.\ \ You\ are\ using\ \".\"\ as\ the\ jar-directory,\ which\ probably\ contains\ files\ other\ than\ jar\ files.\ \ Does\ your\ application\ require\ additional\ jar\ files?\ \ If\ so,\ place\ all\ of\ those\ jar\ files\ in\ a\ clean\ directory.\n\nSee\ the\ example\ at:\ http://jtcl.kenai.com/docs/paraffin.html\ for\ more\ information.\n\n\[MHo\]:\ iskvprep6.bat\ ''is''\ a\ tcl\ script.\ Some\ scripts\ that\ I\ write\ allways\ start\ this\ way:\n======\n#!/bin/sh\n#\ \\\nexec\ /iskv/tools/tclkitsh\ \"\$0\"\ \$\{1+\"\$@\"\}\n::if\ 0\ \{\n@cls\[email protected]\ \"%~dpn0.bat\"\ %*\n@goto\ :EOF\n\}\n\n:\n:\n======\nAnd\ I\ don't\ need\ additional\ JARs,\ I\ think.\ But\ of\ course\ I\ will\ look\ at\ the\ example.\n\n\[MHo\]\ 2013-03-08:\ Don't\ know\ what\ I\ made\ different\ than\ before\ (besides\ looking\ at\ the\ documentation\ page\ which\ I\ missed\ before),\ but\ the\ paraffin\ step\ now\ works\ ok\ and\ produces\ a\ .jar\ file.\ Running\ the\ .jar\ file\ gives\ the\ following\ error:\n======\nC:\\Programme\\jtcl-2.4.0>java\ -jar\ iskvprep6.jar\ncould\ not\ read\ \"resource:tcl/app/iskvprep6.bat\":\ no\ such\ file\ or\ directory\n\ \ \ \ while\ executing\n\"file\ mtime\ \[info\ script\"\n\ \ \ \ invoked\ from\ within\n\"clock\ format\ \[file\ mtime\ \[info\ script\]\]\ -format\ %d.%m.%Y\"\n\ \ \ \ invoked\ from\ within\n\"puts\ stderr\ \"\n\$script\ -\ \[clock\ format\ \[file\ mtime\ \[info\ script\]\]\ -format\ %d.%m.%Y\]\ -\ Anlegen\ von\ Unix-Gruppen,\ -Be\nnutzern\ und\ HomeDirs\ fuer\ 21c\n\nAufru...\"\n\ \ \ \ (\"if\"\ then\ script\ line\ 2)\n\ \ \ \ invoked\ from\ within\n\"if\ \{\$argc\ ==\ 0\ ||\ \$cIx\ <\ 0\}\ \{\n\ \ \ puts\ stderr\ \"\n\$script\ -\ \[clock\ format\ \[file\ mtime\ \[info\ script\]\]\ -format\ %d.%m.%Y\]\ -\\\nAnlegen\ von\ Unix-Gruppen,\ -Benu...\"\n======\n\[TP\]\ This\ error\ is\ from\ the\ '''file'''\ command\ not\ understanding\ the\ '''resource:'''\ convention.\ \ Instead\ of\ a\ true\ virtual\ file\ system\ (like\ C/Tcl),\ JTcl\ only\ recognizes\ resource:\ in\ '''open'''\ and\ '''source'''\ commands.\ \ To\ make\ this\ work,\ you'll\ have\ to\ modify\ your\ application\ to\ not\ use\ '''file'''\ on\ a\ resource:\ pathname.\ \n\n\[MHo\]:\ Then,\ how\ to\ get\ the\ filetime\ of\ the\ script\ itself?\n<<categories>>\ Application\ |\ Graphics} CALL {my revision JTcl} CALL {::oo::Obj4075029 process revision/JTcl} CALL {::oo::Obj4075027 process}

-errorcode

NONE

-errorinfo

Unknow state transition: LINE -> END
    while executing
"error $msg"
    (class "::Wiki" method "render_wikit" line 6)
    invoked from within
"my render_$default_markup $N $C $mkup_rendering_engine"
    (class "::Wiki" method "render" line 8)
    invoked from within
"my render $name $C"
    (class "::Wiki" method "revision" line 31)
    invoked from within
"my revision $page"
    (class "::Wiki" method "process" line 56)
    invoked from within
"$server process [string trim $uri /]"

-errorline

4