Jython Build没有输出

时间:2011-03-08 02:22:21

标签: netbeans build jython

嘿,我一直在玩Jython,我写了以下测试程序:

from javax.swing import *
from java.awt import *
from java.awt.event import ActionListener

class JythonTest(JFrame):
    _windowTitle = ""

    def __init__(self):
        self.initVars()
        self.initLookAndFeel()
        self.initComponents()
        self.initGui()

    def initVars(self):
        self._windowTitle = "Jython Test"
        JFrame.__init__(self, self._windowTitle)

    def initLookAndFeel(self):
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())

    def initComponents(self):
        label = JLabel("Hello World!", JLabel.CENTER)
        label.setFont(Font("Arial", Font.BOLD, 30))

        tabs = JTabbedPane()
        tabs.addTab("Test", label)
        tabs.addTab("Calculator", self.CalculatorPane())
        self.add(tabs)

    def initGui(self):
        self.setSize(400,200)
        self.setDefaultCloseOperation(self.EXIT_ON_CLOSE)
        self.setVisible(1)

    class CalculatorPane(JPanel, ActionListener):
        _txt1 = 0
        _txt2 = 0
        _box = 0

        def __init__(self):
            self.initVars()
            self.initComponents()

        def initVars(self):
            pass

        def initComponents(self):
            self._txt1 = JTextField(5)
            self._box = JComboBox(["+", "-", "*", "/"])
            self._txt2 = JTextField(5)
            btn = JButton("Go")

            btn.addActionListener(self)

            self.add(self._txt1)
            self.add(self._box)
            self.add(self._txt2)
            self.add(btn)

        def actionPerformed(self, ev):
            val1 = self._txt1.getText()
            val2 = self._txt2.getText()
            operation = self._box.getSelectedItem()

            val1 = int(val1)
            val2 = int(val2)

            if operation == "+":
                answer = val1+val2
            elif operation == "-":
                answer = val1-val2
            elif operation == "*":
                answer = val1*val2
            elif operation == "/":
                answer = val1/val2

            JOptionPane.showMessageDialog(self, "The answer is: " + str(answer))

if __name__ == "__main__":
    win = JythonTest()

这是我的系统信息:

Operating System: Ubuntun 10.10
Netbeans Version: 6.9

我的问题是我无法编译上面的代码。当我点击运行按钮时它运行得很好,但是,当我点击构建或清洁&然后我没有得到任何结果。构建过程在右下角运行大约半秒钟然后完成。输出框打开但即使在过程结束后它也完全是空的。当我查看我的项目文件夹时,没有任何变化。只存在两个文件夹,nbproject和src。可能应该有一个带有jar的dist文件夹。这是文件结构中的内容:

user@computer: ~/NetBeansProjects/pythontest$ ls
nbproject  src
user@computer: ~/NetBeansProjects/pythontest$ ls nbproject
private  project.properties  project.xml
user@computer: ~/NetBeansProjects/pythontest$ ls nbproject/private
private.xml
user@computer: ~/NetBeansProjects/pythontest$ ls src
pythontest.py  setup.py

我所做的就是从debian包安装netbeans(很久以前)并通过NetBeans python插件设置python / jython。知道什么是错的吗?

1 个答案:

答案 0 :(得分:2)

简短的回答是它并没有真正起作用;我不知道有任何IDE或工具支持包装jython程序。

通常我所做的只是创建一个shell脚本:

java -cp "the/classpath/;" org.python.util.jython myscript.py

我发现这是运行jython程序最简单的方法,并且在开发期间让我免于工作.jar文件的麻烦。


也就是说,有些方法可以在独立的.jar文件中打包jython程序,如果这是你想要的。

我找到的最好的资源是Distributing Jython Scripts中的Jython FAQ页面,它描述了一些用于分发jython脚本的不同技术。

我通常只在“发布”程序时使用那里描述的方法。