当前位置: 首页 > 知识库问答 >
问题:

在IntelliJ中运行Griffon应用程序时出错,但它可以在命令提示符下工作

隆飞驰
2023-03-14

在Griffon in Action手册的3.6.1段中有一个关于mortageCalc应用程序的练习。

环境:

  • Win 7 Pro,64位
  • Intellij IDEA ver 12.1
  • Griffon-1.2.0 JDK 1.6

我有MortgageCalView:

package mortgagecal

application(title:'Mortgage Calculator', pack:true, locationByPlatform:true)
        {
            panel(border: emptyBorder(6)) {
                gridLayout(rows:4, columns:2, hgap:6, vgap:6)
                label('Principal:')
                textField(text: bind(target:model, 'principal',
                        value:'$200,000',
                        validator: model.validatePrincipal,
                        converter: model.convertPrincipal))
                label('Interest Rate:')
                textField(text: bind(target:model, 'monthlyRate',
                        value:'6.5%',
                        validator: model.validateRate,
                        converter: model.convertRate))
                label('Term:')
                textField(text: bind(target:model, 'months',
                        value:'30',
                        validator: model.validateTerm,
                        converter: model.convertTerm))
                label('Monthly Payment (P&I):')
                textField(editable:false,
                        text: bind(source: model, sourceProperty: 'payment',
                                sourceEvent: 'propertyChange',
                                converter: model.convertPayment))
            }
        }

和MortgageCalModel:

package mortgagecal

import groovy.beans.Bindable
import java.text.NumberFormat
import java.text.DecimalFormat

@Bindable
class MortgageCalModel {
    float principal
    float monthlyRate
    float months
    float getPayment() {
        return principal * monthlyRate /
                (1-Math.pow(1/(1+monthlyRate),months))
    }
    private currencyFormat = NumberFormat.currencyInstance
    private percentFormat = new DecimalFormat('0.00%')
    def validatePrincipal = {
        try {
            float principal = currencyFormat.parse(it)
            return principal > 0
        } catch (Exception e) {
            return false
        }
    }
    def convertPrincipal = currencyFormat.&parse
    def validateRate = {
        try {
            float rate = percentFormat.parse(it)
            return rate > 0 && rate < 0.30
        } catch (Exception e) {
            return false
        }
    }
    def convertRate = {
        return percentFormat.parse(it) / 12
    }
    def validateTerm = {
        try {
            def term = Float.parseFloat(it)
            return term > 0 && term < 100
        } catch (Exception e) {
            return false
        }
    }
    def convertTerm = {
        return Float.parseFloat(it) * 12
    }
    def convertPayment = {
        return currencyFormat.format(it)
    }
}

Groovy.lang.MissingMethodException:方法的无签名:mortgageCal.MortgageCalview.application()适用于参数类型:(java.util.LinkedHashMap,MortgageCal.MortgageCalview.MortgageCalview.MortgageCalview.$_run_closure1)值:[[title:Mortgage Calculator,pack:true,locationbyPlatform:true],...]Groovy.lang.MissingMethodException:方法的无签名:run(MortgageCalview.groovy:3)

但是,当我在命令提示符下运行时,它工作得很好:

cd D:\work\griffon\mortgageCal> 
griffon run-app

所以,我的智力有问题...

共有1个答案

澹台权
2023-03-14

解决了!它之所以给出错误,是因为我试图运行MortgageCalView.groovy。当我运行Griffon:mortgageCal时,它起作用了。换句话说:我必须运行项目,而不是特定的脚本。

 类似资料:
  • 问题内容: 我如何在命令提示符下运行Java程序,我的项目是在Intellij中创建的,而我在命令提示符下运行它却遇到了困难…在不使用Intellij创建项目的情况下,我可以在命令提示符下运行Java程序。 我是这样的 但这是Intellij创建的项目。 当我发出此命令时 但我在该目录中。 先感谢您。 问题答案: 三个问题: 您必须为命令指定完全限定的类名称(这意味着包括软件包名称)。看来您的课程

  • 问题内容: 我创建了一个Java项目来调用Web服务。它具有一个Main java文件和另一个class文件。我已经将一些jar文件用于HTTP客户端。 在Eclipse中,它运行良好。我需要通过传递一些参数在命令提示符下运行Java程序。 在命令提示符下,我转到包含主Java和子类Java文件的src文件夹,并给出了以下命令 我收到以下错误 mainjava.java:14:找不到符号 symb

  • 这里的子类是我的另一个java类文件,用于调用web服务。 如何通过传递参数运行程序?

  • 我是刚到爪哇的。我正在尝试将大型机代码转换为Java。我在命令行下面运行。 我可以知道如何设置res.jar。 命令行代码

  • 我最近开始学习Java编程语言的基础知识。为了在命令提示符下运行我的程序,我下载了java开发工具包(也称为JDK),并将我的Windows10系统路径设置为: C:\Program Files\java\jdk-9.0.1\bin;C:\Program Files\java\jre-9.0.1\bin 在用以下格式编写了一个简单的Hello World程序后: 并在命令提示符下使用 ,然后写 j

  • 我遇到了从命令提示符运行java程序的问题。我有一个名为DataRecover的java文件,还有一个名为Triple的java文件。现在,当我在命令提示符下运行javac triple.java时,它会执行它应该执行的操作。但是,当我运行javac DataRecover.java时,它会出现这样的错误消息:“线程”main“java.lang.noClassDeffounderRror:Dat