国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

如何利用java過程執行操作系統命令

2024-07-21 02:38:55
字體:
來源:轉載
供稿:網友

  以下方法在WINNT,linux下的Oracle9i上測試通過
  
  首先給使用java存儲過程的用戶授予一定的權限
  <>表示所有文件,也可以單獨指定文件。
  r w e d表示四種操作
  
  
   Code:
  Dbms_Java.Grant_Permission('HR',
  'java.io.FilePermission', '<<ALL FILE>>',
  'read ,write, execute, delete');
  
  Dbms_Java.Grant_Permission('HR',
  'java.io.FilePermission', 'd:/aa.bat',
  'read ,write, execute, delete');
  
   dbms_java.grant_permission
    ('HR',
    'java.lang.RuntimePermission',
    '*',
    'writeFileDescriptor' );
   end;
   /
  PL/SQL PRocedure sUCcessfully completed.
  
  See
  
  http://java.sun.com/j2se/1.3/doc ... timePermission.Html
  
  http://java.sun.com/j2se/1.3/doc ... rityPermission.html
  
  http://java.sun.com/j2se/1.3/docs/api/java/io/FilePermission.html
  
  and
  
  http://download-east.oracle.com/ ... 53/perf.htm#1001971
  From the “Java Developer’s Guide”, Part No. A81353-01, Chapter 5:
  
  Table 5–1 Permission Types
  n java.util.PropertyPermission
  n java.io.SerializablePermission
  n java.io.FilePermission
  n java.net.NetPermission
  n java.net.SocketPermission
  n java.lang.RuntimePermission
  n java.lang.reflect.ReflectPermission
  n java.security.SecurityPermission
  n oracle.aurora.rdbms.security.PolicyTablePermission
  n oracle.aurora.security.JServerPermission
  
  相關的java類如下
  SQL> connect hr/hr@ts
  已連接。
  
  create or replace and compile
    java source named "Util"
    as
    import java.io.*;
   import java.lang.*;
    public class Util extends Object
    {
    public static int RunThis(String args)
    {
    Runtime rt = Runtime.getRuntime();
    int    rc = -1;
    try
    {
    Process p = rt.exec(args);
    int bufSize = 4096;
    BufferedInputStream bis =
     new BufferedInputStream(p.getInputStream(), bufSize);
     int len;
     byte buffer[] = new byte[bufSize];
     // Echo back what the program spit out
    while ((len = bis.read(buffer, 0, bufSize)) != -1)
       System.out.write(buffer, 0, len);
      rc = p.waitFor();
    }
     catch (Exception e)
     {
      e.printStackTrace();
      rc = -1;
     }
    finally
    {
      return rc;
     }
     }
    }
   /
  
  Java created.
  
  建立函數
  
  create or replace
  function RUN_CMD(p_cmd in varchar2) return number
    as
   language java
    name 'Util.RunThis(java.lang.String) return integer';
  /
  
  Function created.
  
  建立一過程調用函數
   create or replace procedure RC(p_cmd in varchar2)
   as
    x number;
   begin
    x := run_cmd(p_cmd);
   end;
   /
  
  Procedure created.
  
  SQL> variable x number;
  SQL> set serveroutput on
  SQL> exec dbms_java.set_output(100000);
  
  PL/SQL procedure successfully completed.
  
  可以執行相應的命令和bat文件
  SQL> exec :x := RUN_CMD('ipconfig');
  
  windows 2000 IP Configuration
  
  Ethernet adapter 本地連接
  :
  
      Connection-specific DNS Suffix . :
      IP Address. . . . . . . . . . . . : 172.18.25.102
      Subnet Mask . . . . . . .
  . . . . : 255.255.255.0
      Default Gateway . . . . . . . . . : 172.18.25.1
  
  PL/SQL 過程已成功完成。

  
  也可以執行服務器上的bat文件
  SQL>  exec :x := RUN_CMD('c:/aa.bat');
  c:/oracle/ora92/DATABASE>cmd /c
  c:/oracle/ora92/DATABASE>dir
  Volume in drive C is 本地磁盤
  Volume Serial Number is 5CE1-2622
  Directory of c:/oracle/ora92/DATABASE
  2004-05-15 15:47    <DIR>     .
  2004-05-15 15:47    <DIR>     ..
  2002-12-24 20:13    <DIR>     archive
  1998-09-09 18:31        31,744 oradba.exe
  2004-05-08 11:48         568 OraDim.Log
  2004-03-17 11:53        1,536 PWDweblish.ora
  2004-05-15 15:47      1,871,872 SNCFWEBLISH.ORA
  2003-12-29 13:24        2,560 SPFILEWEBLISH.ORA
  2004-05-08 11:48        12,852 sqlnet.log
  6 File(s)   1,921,132 bytes
  3 Dir(s)  7,141,621,760 bytes free
  
  -----------------
  c:/aa.bat如下:
  
  cmd /c
  dir

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 古浪县| 呈贡县| 泸西县| 华安县| 永和县| 临泽县| 阜南县| 奈曼旗| 永康市| 三门县| 平远县| 洛川县| 静安区| 盐津县| 武冈市| 镇江市| 浏阳市| 宜兰县| 阳西县| 徐水县| 上饶县| 姜堰市| 南陵县| 景洪市| 海盐县| 林西县| 文登市| 天峻县| 黄骅市| 陆川县| 松潘县| 赞皇县| 兴安盟| 邢台县| 思茅市| 东乡县| 新巴尔虎左旗| 抚顺市| 石棉县| 溧水县| 双牌县|