Jython Build не имеет вывода - PullRequest
2 голосов
/ 08 марта 2011

Эй, я немного поигрался с 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.Вероятно, там должна быть папка 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

Все, что я сделал для настройки, это установил netbeans из пакета debian (довольно давно) и настроил python / jython через плагин NetBeans python.Есть идеи, что случилось?

1 Ответ

2 голосов
/ 08 марта 2011

Короткий ответ: на самом деле это не так;Я не знаю какой-либо IDE или поддержки инструментов для упаковки jython-программ.

Обычно я просто делаю сценарий оболочки, который говорит:

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

Я обнаружил, что этосамый надежный способ запуска jython-программы, и он избавил меня от многих головных болей от неработающих файлов .jar во время разработки.


Тем не менее, существуют способы упаковки jython-программ в отдельные файлы .jar, если вы этого хотите.

Лучший ресурс, который я нашел, - это страница Распространение Jython-скриптов на странице Jython FAQ , которая описывает несколько различных методов распространения jython-скриптов.*

Обычно я использую описанные там методы только при «публикации» программы.

...