Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么工作中的java应用程序在添加一行代码后不创建22个.class文件中的1个?_Java_Ide_Interpreter_Netbeans 8 - Fatal编程技术网

为什么工作中的java应用程序在添加一行代码后不创建22个.class文件中的1个?

为什么工作中的java应用程序在添加一行代码后不创建22个.class文件中的1个?,java,ide,interpreter,netbeans-8,Java,Ide,Interpreter,Netbeans 8,我在Windows 10上运行Netbeans IDE 8.1,我的应用程序(697 kb)运行良好,直到MarketData3.java文件增长到404 kb,并且在MarketData3.java文件中添加了一行代码(甚至是一条简单的打印语句)。一旦编码添加,我会得到以下异常,因为MarketData3.class文件不是在成功编译时创建的。此异常发生在ReadyHooStockPricess.startChart中,它创建了MarketData3的实例,但在保存/编译时或在运行时未创建Ma

我在Windows 10上运行Netbeans IDE 8.1,我的应用程序(697 kb)运行良好,直到MarketData3.java文件增长到404 kb,并且在MarketData3.java文件中添加了一行代码(甚至是一条简单的打印语句)。一旦编码添加,我会得到以下异常,因为MarketData3.class文件不是在成功编译时创建的。此异常发生在ReadyHooStockPricess.startChart中,它创建了MarketData3的实例,但在保存/编译时或在运行时未创建MarketData3.class,从而导致以下异常

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: stockentrygui/MarketData3 at stockentrygui.ReadYahooStockPrices.startChart(ReadYahooStockPrices.java:1141)
该项目是大型专有项目,因此我已经包含了异常发生的相关代码,因为它成功运行,直到MarketData3超过特定大小。为了帮助理解流程,应用程序创建stockentrygui以选择特定股票,然后创建ReadyHooStockPrices(RYSP)实例以获取特定股票价格数据,然后调用stockentrygui.ReadyHooStockPrices.startChart下面的startChart方法以创建MarketData3类的实例,它计算技术数据,然后是图表3的实例以绘制价格和技术数据。图表3从MarketData3获取它显示的所有数据(价格和技术分析数据)

下面是相关的ReadyHooStockPrices.startChart方法,该方法为所选股票创建MarketData3对象(mdata=new MarketData3),然后创建Chart3类实例(c3=new Chart3)

ReadyHooStockPrices中的startChart方法由其构造函数调用

public void startChart(){
//技术分析仪ta;
市场数据3 mdata;
//c宪章;
int范围=12;
字符串startDate=null;
//新的MarketData类-发送股票、HLC阵列
//ta=新的TechnicalAnalyzer(库存、起始日期、范围、日期、数据、总天数);
mdata=新市场数据3(股票、起始日期、范围、日期、数据、总天数、警报);
//新图表-发送MarketData标识符、股票和固定范围
MarketCommentation mc=新的MarketCommentation(mdata);
c3=新图表3(股票、范围、mdata、mc、公司名称);
//c3=新图表3(库存、范围、mdata);
c3.立根背景(颜色:白色);
//c3.requestFocus();
//创建一个JFrame来放置Chart3画布和市场评论
//JFrame f=新的JFrame();
setTitle(“技术分析(按->箭头向前,”+

“我相信我找到了问题所在。我发现使用Java()的方法不能大于64 KB,由于各种技术分析测试,我的公式方法变得相当大。我假设当JRE解释器尝试创建marketData3.class时,公式方法太大,引发了上述异常。因此,我创建了两个方法,公式和technicalAnalysis,它解决了我的问题。当然,当我停止测试technicalAnalysis时cal analysis logic,我将删除大部分未使用的逻辑,方法将变得更小。我希望这有助于面临相同类型问题的人——允许方法变得太大。保持它的小。

如果一个类变得太大,你可能需要将它分成两个类吗?我可以想象,如果一个java类变得太大,那么它的设计需要很多改进
public void startChart(){
        //TechnicalAnalyzer ta;
        MarketData3 mdata;
        //Charter c;
        int range=12;
        String startDate=null;

        //new MarketData class - send stock, HLC arrays
        //ta= new TechnicalAnalyzer(stock,startDate,range,date,data,totalDays);

        mdata= new MarketData3 (stock,startDate,range,date,data,totalDays,alert);

        //new Chart - send MarketData identifier, stock and fix range
        MarketCommentary mc = new MarketCommentary(mdata);
        c3 = new Chart3(stock,range,mdata,mc,companyName);
        //c3 = new Chart3(stock,range,mdata);
        c3. setBackground(Color.white);
        //c3.requestFocus();
        //create a JFrame to put Chart3 Canvas and market commentary
        //JFrame f = new JFrame();
        setTitle("Technical Analysis (Press -> arrow to Forward, "+
        "<- arrow to Reverse, and up arrow for more options.)");
       GridBagLayout layout = new GridBagLayout();

        Container c=getContentPane();
        c.setLayout(layout);
        c.add(c3);
        c.add(mc);
        pack();
        show();
        //setVisible(true);
        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    }//end startChart
public MarketData3(String stk, String sdate, int r, String date1[], double data1[][], int tDays,TradeAlerts alert) 
        //throws AccessControlException, SQLException, Exception
        //throws Exception
    {//Market Data Constructor
        super("MARKET TRACKER");

        //if MarketData3 initiated form MarketAnalyzer3 or ReadYahooStockPrices (rysp)
        stock=stk;//fixed in MarketData3, variable in rysp
        startDate=sdate;//start date fixed to 0
        range=r;//range fixed to 12
        this.alert=alert;//multiple file trade alert
//System.out.println("135 Start MarketData3");

        //if MarketData3 (MD3) initiated from ReadYahooStockPrices
        if(tDays>0){
            //create new arrays
            date= new String [tDays];
            data= new double[41][tDays];
            displayData = new double[41][tDays];
            trend= new int[tDays];
            trendLT= new int[tDays];
            trendTest=new int[7][tDays];
            stop12Date= new String[tDays];
            stop6Date= new String[tDays];
            stop6DateTest=new String[tDays]; //v6 stop test 110809
            stop6DateTestRT=new String[2][tDays];
            stop48DateTestRT=new String[4][tDays];
            stop6CaptureHiDate= new String[tDays];
            stop6CaptureLoDate= new String[tDays];
            side= new String[tDays];
            momSw= new int[tDays];
            trade= new String[tDays];
            deltaStoch = new double[7][tDays];
            dataTest=new double[10][tDays];
            //load date
            date=date1;
            //load H, L, C prices into array
            for(int x=0; x<tDays;x++){
                data[0][x]=data1[0][x];
                data[1][x]=data1[1][x];
                data[2][x]=data1[2][x];
            }
            totalDays=tDays;
        }//end tDays>0

        Date now=new Date();
        DateFormat df=DateFormat.getDateInstance();
        System.out.println("MD3 205 Today's date is "+ df.format(now));

        System.out.println("MD3 207 Connect to "+stock+" stockprices");
        //con=new DBConnection(driver, url).getConnection();
        //stmt=con.createStatement();

        // store prices and dates in data arrays if MD3 initiates
        if(totalDays==0){
            //readStockData(); // read from mysql database
            try{
                if(date[0]==null)
                readStockDataFile(); // read from existing csv files
            }
            catch(Exception e){
                System.out.println("readStockData Exeption "+ e.getMessage());
            }

        }

        // Calculate and store indicators in data array
        formula();//Rev7
        //getStop12();
        //Find startCell


        startCell = searchDates(date, startDate);

       //dateData(0);// Rev4: Store dates - shift=0 initialization


        //marketData();//Rev4: Store prices
        //getIndicators();//Rev7
        //formula();//Rev6: calculate ma, mom, vel
        //trendLogic();

        System.out.println("Stock Prices Read");



    }// end MarketData3 Constructor