Tutorialを参考に、Python Mode for ProcessingからJava Libraryの利用について試行してみる。
価格にチップ(%)と消費税(%)を上乗せした合計額を表示させる単純なアプリ。
まずは、計算機Calculatorクラス
Calculator.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
/** * Java calculator class that contains two simple methods */ public class Calculator { public Calculator(){ } public double calculateTip(double cost, double tipPercentage){ return cost * tipPercentage; } public double calculateTax(double cost, double taxPercentage){ return cost * taxPercentage; } } |
UTF-8で保存して、Terminalから
1 2 3 4 |
$javac Calculator.java $jar cvf Calculator.jar Calculator.class マニフェストが追加されました Calculator.classを追加中です(入=320)(出=215)(32%収縮されました) |
で、Calculator.jarを作成した。
pyde実行フォルダ内にlibraryフォルダを作成し、このCalculator.jarを収める。
次にPythonのコードJythonCalc_py.pydeを実行させる。
ここでは価格が$23.75で、チップ7%、消費税15%として算定する。
注意は、オフィシャルサイトのチュートリアルのコードには、calculateTip(tip)とcalculateTax(tax)の引数にcostが抜けているためエラーがでる。
calculateTip(cost, tip)、calculateTax(cost, tax)としないといけない。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import Calculator from java.lang import Math class JythonCalc(Calculator): def __init__(self): pass def calculateTotal(self, cost, tip, tax): #return cost + self.calculateTip(tip) + self.calculateTax(tax) return cost + self.calculateTip(cost, tip) + self.calculateTax(cost, tax) if __name__ == "__main__": calc = JythonCalc() cost = 23.75 tip = .15 tax = .07 print "Starting Cost: ", cost print "Tip Percentage: ", tip print "Tax Percentage: ", tax print Math.round(calc.calculateTotal(cost, tip, tax)) |
実行させると
1 2 3 4 |
Starting Cost: 23.75 Tip Percentage: 0.15 Tax Percentage: 0.07 29 |
無事に合計額は$29と算定された!
要するにJavaのクラスをコンパイルしてjarファイルを作成し、libraryフォルダに置き、Python からimportで呼び出して利用することができるというわけだ。