Sory.<br><br> It is my mistake to send mail in chinese  to reply this question. <br><br>I thought someone ask question in a chinese Scilab Google group that I joined.<br><br>Yung-Jang Lee  <br><br><div class="gmail_quote">

2012/11/12 Yung-Jang Lee <span dir="ltr"><<a href="mailto:yjlee123@gmail.com" target="_blank">yjlee123@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Scilab 目前提供在 Java 環境 call scilab 函數的功能<br>你可依照以下程序使用 <br><br>      1. 先以 Scilab 語言設計未來需要被 Java  操作的計算功能 <br>      2. 利用 Scilab 所提供的 Java 介面, 透過 Java 環境操作 Scilab <br><br>         help javasci 可查出有哪些介面可以使用<br><br>      3. 上一步計算完的結果以變數的形式存在 Scilab 工作空間 (workspace),可透過 Scilab -Java 介面傳到 Java 環境轉成Java 變數<br>


<br>    <br><br>你必須將 SCI\bin 加入到你的 PATH 環境參數內, 另外將幾個路徑加入倒  CLASSPATH 中 , 詳細說明可<br>以 help<a href="http://compile_and_run_javasci_v2.html" target="_blank"> compile_and_run_javasci_v2</a>  查到<br><br><br>以 scilab-5.4.0\modules\javasci\examples\v2 內之範例說明, 首先修改其中所附的 build.bat 如下 <br>


<br><br>--------------build.bat-------------<br><pre style="font-family:Monospaced;font-style:normal;font-size:10.0"><span>echo</span> <span>off</span>
<span>rem</span> <span>Path</span> <span>to</span> <span>Scilab</span> <span>data</span>
<span style="color:rgb(50,185,185)">set</span> <span style="color:rgb(188,143,143)">SCI=C:\ADE\programs\scilab-5.4.0</span><--------- 這行要記得用你自己了 Scilab 路徑名稱
<span style="color:rgb(50,185,185)">set</span> <span style="color:rgb(188,143,143)">oPath=%PATH%</span>
<span style="color:rgb(50,185,185)">set</span> <span style="color:rgb(188,143,143)">PATH=%SCI%\bin</span><span>;</span><span>%oPath</span><span>%</span>
<span>rem</span> <span>Java</span> <span>API</span>
<span style="color:rgb(50,185,185)">set</span> <span style="color:rgb(188,143,143)">CLASSPATH=%SCI%</span><span style="color:rgb(188,143,143)">/modules</span><span style="color:rgb(188,143,143)">/javasci</span><span style="color:rgb(188,143,143)">/jar</span><span style="color:rgb(188,143,143)">/org.scilab.modules.javasci.jar</span><span>;</span><span>%SCI</span><span>%</span><span style="color:rgb(92,92,92)">/</span><span>modules</span><span style="color:rgb(92,92,92)">/</span><span>types</span><span style="color:rgb(92,92,92)">/</span><span>jar</span><span style="color:rgb(92,92,92)">/</span><span>org</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">scilab</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">modules</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">types</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">jar</span><span>;</span><span>%SCI</span><span>%</span><span style="color:rgb(92,92,92)">/</span><span>jar</span>
<span>rem</span> <span>Path</span> <span>to</span> <span>native</span> <span>libs</span>
<span>javac</span> <span style="color:rgb(92,92,92)">-</span><span>cp</span> <span>%CLASSPATH</span><span>%</span> <span>Example1</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">java</span>
<span>java</span> <span style="color:rgb(92,92,92)">-</span><span>cp</span> <span>%CLASSPATH</span><span>%</span><span>;</span><span style="color:rgb(92,92,92)">.</span>  <span>Example1</span>

<span style="color:rgb(50,185,185)">set</span> <span style="color:rgb(188,143,143)">PATH=%oPath%</span><br>-----  end of build.bat----------------------------------<br></pre><br>開啟一個 DOS 視窗, cd 到 scilab-5.4.0\modules\javasci\examples\v2 內執行<br>


<br>   build<br><br>應該可看到輸出<br><br>......\scilab-5.4.0\modules\javasci\examples\v2>echo off<br><br>    2.    4.           6.<br>    4.    3.1415927    10.<br>    6.    10.          12.<br><br>我將 Java code 簡單註解說明如下 :<br>


<br>---------------Example1.java 說明---------------<br><pre style="font-family:Monospaced;font-style:normal;font-size:10.0"><br>// 以下三行之 Java package 由 Scilab 環境提供
<span style>import</span> <span style>org</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">scilab</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">modules</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">javasci</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">Scilab</span><span style>;</span>
<span style>import</span> <span style>org</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">scilab</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">modules</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">types</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">ScilabType</span><span style>;</span>
<span style>import</span> <span style>org</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">scilab</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">modules</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">types</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">ScilabDouble</span><span style>;</span>

<span style>class</span> <span style>Example1</span> <span style="color:rgb(74,85,219)">{</span>

    <span style>public</span> <span style>static</span> <span style>void</span> <span style>main</span><span style="color:rgb(74,85,219)">(</span><span style>String</span><span style="color:rgb(74,85,219)">[</span><span style="color:rgb(74,85,219)">]</span> <span style>args</span><span style="color:rgb(74,85,219)">)</span> <span style="color:rgb(74,85,219)">{</span>
        <span style="color:rgb(160,32,240)">try</span> <span style="color:rgb(74,85,219)">{</span>

            <span style>Scilab</span> <span style>sci</span> <span style="color:rgb(92,92,92)">=</span> <span style>new</span> <span style>Scilab</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">)</span><span style>;</span> // 取得一個 Scilab 物件

            <span style="color:rgb(160,32,240)">if</span> <span style="color:rgb(74,85,219)">(</span><span style>sci</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">open</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(74,85,219)">)</span> <span style="color:rgb(74,85,219)">{</span>
                <span style="color:rgb(92,92,92)">/</span><span style="color:rgb(92,92,92)">*</span> <span style>Send</span> <span style>a</span> <span style>Scilab</span> <span style>instruction</span> <span style="color:rgb(92,92,92)">*</span><span style="color:rgb(92,92,92)">/</span>
                <span style>sci</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">exec</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(188,143,143)">"</span><span style="color:rgb(188,143,143)">foo = [ 2, 4, 6; 4, 0, 10; 6, 10, 12 ];</span><span style="color:rgb(188,143,143)">"</span><span style="color:rgb(74,85,219)">)</span><span style>;    //以字串方式送出給 Scilab 執行</span>

                <span style="color:rgb(92,92,92)">/</span><span style="color:rgb(92,92,92)">*</span> <span style>Retrieve</span> <span style>the</span> <span style>variable</span> <span style>foo</span> <span style="color:rgb(92,92,92)">*</span><span style="color:rgb(92,92,92)">/</span>
                <span style>ScilabType</span> <span style>foo</span> <span style="color:rgb(92,92,92)">=</span> <span style>sci</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">get</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(188,143,143)">"</span><span style="color:rgb(188,143,143)">foo</span><span style="color:rgb(188,143,143)">"</span><span style="color:rgb(74,85,219)">)</span><span style>; // 取得 scilab 變數 foo</span>

                <span style="color:rgb(92,92,92)">/</span><span style="color:rgb(92,92,92)">*</span> <span style>Display</span> <span style>the</span> <span style>variable</span> <span style="color:rgb(92,92,92)">*</span><span style="color:rgb(92,92,92)">/</span>
                <span style>System</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">out</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">println</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(188,143,143)">"</span><span style="color:rgb(188,143,143)">Representation of  : </span><span style="color:rgb(188,143,143)">"</span> <span style="color:rgb(92,92,92)">+</span> <span style>foo</span><span style="color:rgb(74,85,219)">)</span><span style>; // 顯示 Scilab 變數 foo</span>

                <span style="color:rgb(92,92,92)">/</span><span style="color:rgb(92,92,92)">*</span> <span style>Get</span> <span style>the</span> <span style>data</span> <span style="color:rgb(50,185,185)">and</span> <span style="color:rgb(188,143,143)">retrieve</span> <span style="color:rgb(188,143,143)">the</span> <span style="color:rgb(188,143,143)">2</span><span style>,</span><span style="color:rgb(188,143,143)">2</span> <span style>value</span> <span style="color:rgb(92,92,92)">*</span><span style="color:rgb(92,92,92)">/</span>
                <span style="color:rgb(50,185,185)">double</span><span style="color:rgb(74,85,219)">[</span><span style="color:rgb(74,85,219)">]</span><span style="color:rgb(74,85,219)">[</span><span style="color:rgb(74,85,219)">]</span> <span style>aReal</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">(</span><span style>ScilabDouble</span><span style="color:rgb(74,85,219)">)</span><span style>foo</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">getRealPart</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">)</span><span style>; // 取得  foo(2,2) 之實部存成 Java 變數 aReal </span>
                <span style>System</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">out</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">println</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(188,143,143)">"</span><span style="color:rgb(188,143,143)">foo[1,1] = </span><span style="color:rgb(188,143,143)">"</span> <span style="color:rgb(92,92,92)">+</span> <span style>aReal</span><span style="color:rgb(74,85,219)">[</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(74,85,219)">]</span><span style="color:rgb(74,85,219)">[</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(74,85,219)">]</span><span style="color:rgb(74,85,219)">)</span><span style>;  // 列印 aReal</span>

                <span style="color:rgb(92,92,92)">/</span><span style="color:rgb(92,92,92)">*</span> <span style>Change</span> <span style>the</span> <span style>value</span> <span style>of</span> <span style="color:rgb(188,143,143)">2</span><span style>,</span><span style="color:rgb(188,143,143)">2</span> <span style="color:rgb(92,92,92)">*</span><span style="color:rgb(92,92,92)">/</span>
                <span style>aReal</span><span style="color:rgb(74,85,219)">[</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(74,85,219)">]</span><span style="color:rgb(74,85,219)">[</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(74,85,219)">]</span> <span style="color:rgb(92,92,92)">=</span> <span style>Math</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">PI</span><span style>;    //  改變 aReal(1,1) 內容</span>

                <span style="color:rgb(92,92,92)">/</span><span style="color:rgb(92,92,92)">*</span> <span style>Create</span> <span style>a</span> <span style>new</span> <span style>variable</span> <span style="color:rgb(92,92,92)">*</span><span style="color:rgb(92,92,92)">/</span>
                <span style>ScilabDouble</span> <span style="color:rgb(174,92,176);text-decoration:underline">bar</span> <span style="color:rgb(188,143,143)">=</span> <span style="color:rgb(188,143,143)">new</span> <span style="color:rgb(188,143,143)">ScilabDouble(aReal)</span><span style>; //</span> 以 aReal 內容設定一和 Scilab 交換資料的 Java 變數 bar

                <span style="color:rgb(92,92,92)">/</span><span style="color:rgb(92,92,92)">*</span> <span style>Send</span> <span style>it</span> <span style>to</span> <span style>Scilab</span> <span style="color:rgb(92,92,92)">*</span><span style="color:rgb(92,92,92)">/ </span>
                <span style>sci</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">put</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(188,143,143)">"</span><span style="color:rgb(188,143,143)">bar</span><span style="color:rgb(188,143,143)">"</span><span style>,</span> <span style="color:rgb(174,92,176);text-decoration:underline">bar</span><span style="color:rgb(74,85,219)">)</span><span style>; // 將 </span>Java 變數 bar 送到 Scilab 存成 Scilab 變數 bar

                <span style="color:rgb(92,92,92)">/</span><span style="color:rgb(92,92,92)">*</span> <span style>Display</span> <span style>it</span> <span style>through</span> <span style>Scilab</span> <span style="color:rgb(92,92,92)">*</span><span style="color:rgb(92,92,92)">/</span>
                <span style>sci</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">exec</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(188,143,143)">"</span><span style="color:rgb(188,143,143)">disp(bar)</span><span style="color:rgb(188,143,143)">"</span><span style="color:rgb(74,85,219)">)</span><span style>; // 以 Scilab 語言顯示 bar</span>

                <span style>sci</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">close</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">)</span><span style>;</span>
            <span style="color:rgb(74,85,219)">}</span> <span style="color:rgb(160,32,240)">else</span> <span style="color:rgb(74,85,219)">{</span>
                <span style>System</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">out</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">println</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(188,143,143)">"</span><span style="color:rgb(188,143,143)">Could not start Scilab </span><span style="color:rgb(188,143,143)">"</span><span style="color:rgb(74,85,219)">)</span><span style>;</span>
            <span style="color:rgb(74,85,219)">}</span>

            <span style="color:rgb(92,92,92)">/</span><span style="color:rgb(92,92,92)">*</span> <span style>Can</span> <span style>be</span> <span style>improved</span> <span style>by</span> <span style>other</span> <span style>exceptions</span><span style="color:rgb(255,170,0)">:</span> <span style>AlreadyRunningException</span><span style>,</span>
             <span style="color:rgb(92,92,92)">*</span> <span style>InitializationException</span><span style>,</span> <span style>UndefinedVariableException</span><span style>,</span>
             <span style="color:rgb(92,92,92)">*</span> <span style>UnknownTypeException</span><span style>,</span> <span style>etc</span>
             <span style="color:rgb(92,92,92)">*</span><span style="color:rgb(92,92,92)">/</span>
        <span style="color:rgb(74,85,219)">}</span> <span style="color:rgb(160,32,240)">catch</span> <span style="color:rgb(74,85,219)">(</span><span style>org</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">scilab</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">modules</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">javasci</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">JavasciException</span> <span style>e</span><span style="color:rgb(74,85,219)">)</span> <span style="color:rgb(74,85,219)">{</span>
            <span style>System</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">err</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">println</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(188,143,143)">"</span><span style="color:rgb(188,143,143)">An exception occurred: </span><span style="color:rgb(188,143,143)">"</span> <span style="color:rgb(92,92,92)">+</span> <span style>e</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">getLocalizedMessage</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(74,85,219)">)</span><span style>;</span>
        <span style="color:rgb(74,85,219)">}</span>

    <span style="color:rgb(74,85,219)">}</span>
<span style="color:rgb(74,85,219)">}</span><br>----------------------------------------------------<br><br><br>不過我發現目前這個版本 (Scilab-5.4 ) 在我的環境 執行這個程式有 bug, 幾個列印指令並未正常輸出<br><br><br>如果你和我的輸出結果一樣 那麼試試 5.3 版<br><br>這類 bug  最近幾版會較多  因為 Scilab 似乎正在進行由核心改變的大變動 <br>


</pre><br><br><div class="gmail_quote">2012/11/11 杜宽 <span dir="ltr"><<a href="mailto:du.k@neusoft.com" target="_blank">du.k@neusoft.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div link="blue" vlink="purple" lang="ZH-CN"><div><p class="MsoNormal"><span style="font-size:9.0pt" lang="EN-US">Hi,<u></u><u></u></span></p>



<p class="MsoNormal"><span style="font-size:9.0pt" lang="EN-US">         I want to call a function created by myself in using java language, so how can do ? thanks very much!<u></u><u></u></span></p><p class="MsoNormal">


<span style="font-size:9.0pt" lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal" style="layout-grid-mode:char"><span style="font-size:9.0pt;font-family:宋体;color:#1f497d" lang="EN-US">***********************<u></u><u></u></span></p><p class="MsoNormal" style="layout-grid-mode:char">



<span style="font-size:9.0pt;font-family:宋体;color:#1f497d">杜宽 </span><span style="font-family:"Times New Roman","serif"" lang="EN-US"><a href="mailto:du.k@neusoft.com" target="_blank"><span style="font-size:9.0pt;font-family:宋体;color:blue">du.k@neusoft.com</span></a></span><span style="font-family:"Times New Roman","serif"" lang="EN-US"><u></u><u></u></span></p>



<p class="MsoNormal" style="layout-grid-mode:char"><span style="font-size:9.0pt;font-family:宋体;color:#1f497d" lang="EN-US">Mobile</span><span style="font-size:9.0pt;font-family:宋体;color:#1f497d">:<span lang="EN-US">13464181474</span></span><span style="font-family:"Times New Roman","serif";color:#1f497d" lang="EN-US"><u></u><u></u></span></p>



<p class="MsoNormal" style="layout-grid-mode:char"><span style="font-size:9.0pt;font-family:宋体;color:#1f497d">东软集团股份有限公司</span><span style="font-family:"Times New Roman","serif"" lang="EN-US"><u></u><u></u></span></p>



<p class="MsoNormal" style="layout-grid-mode:char"><span style="font-size:9.0pt;font-family:宋体;color:#1f497d">政府事业部</span><span style="font-family:"Times New Roman","serif"" lang="EN-US"><u></u><u></u></span></p>



<p class="MsoNormal" style="layout-grid-mode:char"><span style="font-size:9.0pt;font-family:宋体;color:#1f497d">国土与住建开发部</span><span style="font-family:"Times New Roman","serif"" lang="EN-US"><u></u><u></u></span></p>



<p class="MsoNormal" style="layout-grid-mode:char"><span style="font-size:9.0pt;font-family:宋体;color:#1f497d" lang="EN-US">***********************</span><span style="font-size:9.0pt;font-family:宋体;color:#1f497d" lang="EN-US"><u></u><u></u></span></p>



<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p></div><p>---------------------------------------------------------------------------------------------------<br>
Confidentiality Notice: The information contained in this e-mail and any accompanying attachment(s) <br>
is intended only for the use of the intended recipient and may be confidential and/or privileged of <br>
Neusoft Corporation, its subsidiaries and/or its affiliates. If any reader of this communication is <br>
not the intended recipient, unauthorized use, forwarding, printing,  storing, disclosure or copying <br>
is strictly prohibited, and may be unlawful.If you have received this communication in error,please <br>
immediately notify the sender by return e-mail, and delete the original message and all copies from <br>
your system. Thank you. <br>
---------------------------------------------------------------------------------------------------</p></div><br></div></div>_______________________________________________<br>
dev mailing list<br>
<a href="mailto:dev@lists.scilab.org" target="_blank">dev@lists.scilab.org</a><br>
<a href="http://lists.scilab.org/mailman/listinfo/dev" target="_blank">http://lists.scilab.org/mailman/listinfo/dev</a><br>
<br></blockquote></div><br>
</blockquote></div><br>