2009-10-04 84 views
1

因此,您不允許將Jython用於您在工作中開發的生產代碼。您可以用它來幫助您完成日常任務和編寫該Java代碼的活動。問題是:您如何使用Jython,以及這些如何幫助您的開發和/或生產力?如何使用Jython進行Java開發?

回答

3

我運行一個Jython命令行,並在命令行上動態創建/詢問我的類。我發現對於確定類如何響應各種輸入(通常將這些輸入編碼爲測試等)非常有效。

我還發現這對學習Swing非常有用 - 動態調整大小/重新包裝和添加/刪除組件。

您可以對其他Java腳本語言(例如BeanShell)執行相同的操作,但Jython是我首先使用的一種語言。

+0

被選爲接受的答案,因爲它似乎是我最感興趣和相關的。 – 2010-03-04 10:09:26

1

我用豆蔻腳本運行Ant的腳本啓動和停止JBoss的... 腳本到處跑贏和Linux(無需特殊的蝙蝠/.sh)

作爲一個例子我的小UTIL。 py(要導入)

import sys 
import os 
import shutil 

def ant(buildfile,target=''): 
    antrun = os.sep.join([os.environ['ANT_HOME'],'bin','ant']) 
    action = ' '.join([antrun,'-buildfile',buildfile,target]) 
    os.system(action) 

def jboss_start(): 
    jbrun = os.sep.join([os.environ['JBOSS_HOME'],'bin','run']) 
    action = ' '.join(['start',jbrun,'-c default -b %COMPUTERNAME%']) 
    print action 
    os.system(action) 

def jboss_stop(args='--user=admin --password=admin -s %COMPUTERNAME% -S'): 
    os.environ['NOPAUSE'] = "TRUE" 
    jbstop = os.sep.join([os.environ['JBOSS_HOME'],'bin','shutdown']) 
    action = ' '.join([jbstop,args]) 
    print action 
    os.system(action) 

def pjoin(*args): 
    rc = os.sep.join(args) 
    return os.path.normpath(rc) 

def env(key,value=None): 
    if value : 
     os.environ[key] = value 
    return os.environ.get(key,'') 

def cp(src,dst): 
    shutil.copy(src, dst) 

def mkdir(dst,mode=0777): 
    if not os.path.exists(dst) : 
     os.makedirs(dst, mode) 

..我用jython(pydev)在Eclipse中運行測試。 jython是完美的寫你的java代碼的小測試。

+1

你應該真的調查子進程模塊:-) – 2009-10-05 20:12:38

+0

好吧好吧os.system是一個快速入侵:-) – Blauohr 2009-10-06 07:58:54

1

我使用Jython使用​​和包含的com.sybase.jdbc2.jdbc.SybDriver來訪問Sybase數據庫。與zxJDBCiBATIS一起,這使我可以用Python編程來對付我工作的公司中的一個主要數據庫。

0

我們使用jython運行'jybot',測試運行器是robot framework的一部分。它讓我們編寫Java代碼,作爲我們的Java代碼和測試腳本之間的粘合劑。

0

因爲:

  • 我喜歡的Python,
  • ,我們的主要產品之一是用Java編寫,並使用JDBC驅動程序

我使用的Jython與zxJDBC做一些工具,如標杆查詢, 測試模式等。例如,我創建了可用於Python + cx_Oracle或Jython + Oracle JDBC驅動程序的tool to export Oracle database information(表,列,觸發器,過程)。