Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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 我的程序花更多时间来使用main方法的原因是什么?_Java_Swing - Fatal编程技术网

Java 我的程序花更多时间来使用main方法的原因是什么?

Java 我的程序花更多时间来使用main方法的原因是什么?,java,swing,Java,Swing,我正在尝试运行该类,但需要一分钟以上的时间才能找到main()方法 我已经导入了大约140个jar,这是调用我的内部api所必需的。那么,在使用main方法之前加载所有jar是否总是需要更多的时间呢 这是一种最小化执行时间的方法吗 这就是我的主类的样子,我在其中导入了大多数罐子 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.FlowLayout; im

我正在尝试运行该类,但需要一分钟以上的时间才能找到main()方法

我已经导入了大约140个jar,这是调用我的内部api所必需的。那么,在使用main方法之前加载所有jar是否总是需要更多的时间呢

这是一种最小化执行时间的方法吗

这就是我的主类的样子,我在其中导入了大多数罐子

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Vector;

import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.CellStyle;
import org.jdesktop.swingx.JXDatePicker;
import org.w3c.dom.Document;

import com.thd.custom.util.XMLUtil;
import com.yantra.interop.japi.YIFApi;
import com.yantra.interop.japi.YIFClientFactory;
import com.yantra.ycp.core.YCPContext;
import com.yantra.yfc.dom.YFCDocument;
import com.yantra.yfc.dom.YFCElement;
import com.yantra.yfc.dom.YFCNodeList;
import com.yantra.yfs.core.YFSObject;

public class OrderStatCompUI extends JPanel {

    private static final long serialVersionUID = 1L;
    private static JTextField[] fields;
    private JXDatePicker[] datepicker;
    private static JCheckBox chkEcommOrder;
    private static JCheckBox chkStoreOrder;
    protected static JTable     tblOrdStatus;
    private JScrollPane     spOrdStat;
    protected static DefaultTableModel model;
    private ArrayList<Boolean> setColor = new ArrayList<Boolean>();
    private ArrayList<String> transferOrderNo = new ArrayList<String>();
    private static JButton btnSlctRow;
    private static JButton btnAllRow;
    private JPanel btmPnl;
    private YCPContext env;
    private static JButton btnExport;
导入java.awt.BorderLayout;
导入java.awt.Color;
导入java.awt.Component;
导入java.awt.FlowLayout;
导入java.awt.Font;
导入java.awt.Frame;
导入java.awt.GridLayout;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.awt.image.buffereImage;
导入java.beans.PropertyChangeEvent;
导入java.beans.PropertyChangeListener;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.sql.Connection;
导入java.sql.DriverManager;
导入java.sql.ResultSet;
导入java.sql.Statement;
导入java.text.simpleDataFormat;
导入java.util.ArrayList;
导入java.util.Calendar;
导入java.util.Date;
导入java.util.HashMap;
导入java.util.Iterator;
导入java.util.List;
导入java.util.Map;
导入java.util.Vector;
导入javax.imageio.imageio;
导入javax.swing.JButton;
导入javax.swing.JCheckBox;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JOptionPane;
导入javax.swing.JPanel;
导入javax.swing.JScrollPane;
导入javax.swing.JTable;
导入javax.swing.JTextArea;
导入javax.swing.JTextField;
导入javax.swing.SwingConstants;
导入javax.swing.table.DefaultTableModel;
导入javax.swing.table.TableCellRenderer;
导入org.apache.poi.hssf.usermodel.HSSFCell;
导入org.apache.poi.hssf.usermodel.HSSFCellStyle;
导入org.apache.poi.hssf.usermodel.hssfont;
导入org.apache.poi.hssf.usermodel.HSSFRow;
导入org.apache.poi.hssf.usermodel.HSSFSheet;
导入org.apache.poi.hssf.usermodel.HSSFWorkbook;
导入org.apache.poi.hssf.util.HSSFColor;
导入org.apache.poi.ss.usermodel.CellStyle;
导入org.jdesktop.swingx.JXDatePicker;
导入org.w3c.dom.Document;
导入com.thd.custom.util.XMLUtil;
导入com.yantra.interop.japi.YIFApi;
导入com.yantra.interop.japi.YIFClientFactory;
导入com.yantra.ycp.core.YCPContext;
导入com.yantra.yfc.dom.yfcd文档;
导入com.yantra.yfc.dom.YFCElement;
导入com.yantra.yfc.dom.YFCNodeList;
导入com.yantra.yfs.core.YFSObject;
公共类OrderStatCompUI扩展了JPanel{
私有静态最终长serialVersionUID=1L;
私有静态JTextField[]字段;
私有JXDatePicker[]日期选择器;
专用静态JCheckBox chkEcommOrder;
私有静态JCheckBox chkStoreOrder;
受保护的静态JTable状态;
私人JScrollPane spOrdStat;
保护静态模型;
private ArrayList setColor=new ArrayList();
私有ArrayList transferOrderNo=新ArrayList();
私有静态JButton btnSlctRow;
私有静态JButton btnAllRow;
私人JPanel btmPnl;
私人YCPContext环境;
专用静态JButton btnExport;
我还尝试创建了2个类,其中main类只有UI部分,而另一个类有behavior部分。当我这样做时,main()方法在一秒钟内被执行,但当我在控制台中执行一些操作时,当执行转到behavior类时,再次需要一分钟来加载和填充数据


在这方面,有人能帮我吗?

尝试将JVM设置为在启动时间快得多的客户机模式下运行。如果它是在服务器模式下运行的(如果您的系统规格较大(内存等),则可能会这样做)然后启动时间会变慢。

看起来是时候在启动过程中分析程序,看看时间花在哪里了。类加载需要时间。似乎应该继续将大类拆分为小类,以避免在启动时加载140个JAR。使用
java-verbose:class
查看JVM何时加载一个JAR使用-verbose:class后,我可以看到哪个jar需要更多的时间。正如您所建议的,我将尝试将我的类拆分为更小的类。非常感谢您的评论,这真的很有帮助。感谢Deepak,但我没有传递任何要在服务器模式下运行的参数。下面是要传递给执行的参数。-Xms512m-Xmx768m-XX:CompileThreshold=8000-XX:PermSize=256m-XX:MaxPermSize=512m-Dvendor=shell-DvendorFile=C:/Siva/WorkJars/servers\u prod.properties-Dfile.encoding=UTF-8然后根据您的输入,当您拆分类时,行为类代码需要很长时间才能执行,您在该类中似乎有一些逻辑需要这段时间长时间加载建议您在行为类的开头在IDE中放置一个调试点,并逐行查看占用最长时间的调用的位置。或者在适当的位置放置多个调试点或添加一些记录器,以便记录该位置的时间。。