简体   繁体   English

为什么 Eclipse 说“存在错误”但在控制台中什么也没显示?

[英]Why does Eclipse say that “errors exist” but shows nothing in console?

I am using Eclipse to build a program and when I go to run it, it says that "errors exist", I run it anyway, there are no errors showing up in the console and the application runs a blank screen.我正在使用 Eclipse 来构建一个程序,当我去运行它时,它说“存在错误”,我还是运行它,控制台中没有显示错误并且应用程序运行一个空白屏幕。 Why is this?为什么是这样?

Additional Info: I recently have been trying to change my previous layout, from a very crude form, to utilizing GridBagLayout, however i am not very familiar with using layouts.附加信息:我最近一直在尝试将我以前的布局从非常粗糙的形式更改为使用 GridBagLayout,但是我对使用布局不是很熟悉。 I strongly suspect the problem lies in, or revolves around, my layout since the program properly functioned before I tried making changes.我强烈怀疑问题出在或围绕着我的布局,因为在我尝试进行更改之前程序运行正常。

Here are my two main classes that involve the layout, sorry for it being messy, I commented out a lot of lines that worked for the previous layout in case I have to revert back to it:这是我的两个涉及布局的主要类,抱歉它很乱,我注释掉了很多适用于以前的布局的行,以防万一我不得不回到它:

import java.awt.*;
import java.sql.SQLException;
import java.util.LinkedList;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
import javax.swing.Timer;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.plaf.ColorUIResource;

import java.sql.*;

public class MainDisplay extends JFrame {

static Toolkit tk = Toolkit.getDefaultToolkit();
static int Width = (int)tk.getScreenSize().getWidth();
static int Height = (int)tk.getScreenSize().getHeight();

//public static JFrame frame = new JFrame();
public static JPanel pane = new JPanel();


private static String targetIpHolder;
private static String attackerIpHolder;
private static int threatLevelHolder; 
private static String numAttacksHolder;

public static void main (String[] args) {
new MainDisplay();

}

public MainDisplay() {


setPreferredSize(new Dimension(Width, Height));
setLocation(0,0);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setUndecorated(true);



//pane.setLayout(gridBag);
setLayout(new BorderLayout());
//add(pane, BorderLayout.CENTER);
pane.setBounds(0,0, Width, Height);

pack();
setVisible(true);

ThreatPanel Run = new ThreatPanel();
Database Data = new Database();

//Create Connection to Database and run query

Data.createConnection();
Data.getData();
    try {
        while(Data.rslt.next()){
            Data.process();
            targetIpHolder = Data.getTarget();
            attackerIpHolder = Data.getAttacker();
            threatLevelHolder = Data.getThreat_level();
            numAttacksHolder = Data.getNum_attack();
            //System.out.println(targetIpHolder);
            //System.out.println(attackerIpHolder);
            Run.ShowThreats();
            try {
                Thread.sleep(1000*1); 
            } catch (InterruptedException e) {

                e.printStackTrace();
            }

        }
    } catch (SQLException e) {

        e.printStackTrace();
    }



}

public static String getTargetIpHolder(){
return targetIpHolder;
}
public static String getAttackerIpHolder(){
return attackerIpHolder;
}
public static int getThreatLevelHolder(){
return threatLevelHolder;
}
public static String getNumAttacks(){
return numAttacksHolder;
}

}

import java.awt.Color;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.image.RenderedImage;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;


import javax.imageio.ImageIO;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;



public class ThreatPanel {

JPanel BackPanel = new JPanel();
//JPanel HeadingBreak = new JPanel();
JPanel DarkPanel = new JPanel();
//JPanel HeadingBreak = new JPanel();
//JPanel HorizontalSplit1 = new JPanel();
//JPanel HorizontalSplit2 = new JPanel();
//JPanel VerticalSplit = new JPanel();

public GridBagLayout gridBag = new GridBagLayout();
public GridBagConstraints gbc = new GridBagConstraints();


final int TEST = 0;
final int TEST2 = 100;
final int TEST3 = 200;

private String city;
private String region;
private String latitude;
private String longitude;
private Image img;
private ImageIcon icon;

Color severeColor = new Color(225,102,00);

URL geoLocRetriever;


//Target area declarations. 
String Client = "CLIENT"; //filler
JLabel Target = new JLabel("TARGET");
JLabel ClientLabel = new JLabel(Client); //filler
JLabel TargetServerData;
JLabel ServerID = new JLabel("SERVER ID");

//Attacker area declarations.
JLabel Attacker = new JLabel("ATTACKER");
JLabel AttackerData;
JLabel GeoLocData;
JLabel GeoLocImg;
JLabel GeoLocLabel = new JLabel("GEO LOCATION");

//Threat Level area declarations.
JLabel ThreatLevel = new JLabel("THREAT");
JLabel ThreatLevelData;

//Number of Attacks declarations
JLabel NumberOfAttacks = new JLabel("ATTACKS");
JLabel NumberOfAttacksData;


public ThreatPanel()
{
DarkPanel.setLayout(gridBag);

TargetServerData = new JLabel();
AttackerData = new JLabel();
ThreatLevelData = new JLabel();
NumberOfAttacksData = new JLabel();
GeoLocData = new JLabel();
GeoLocImg = new JLabel();


BackPanel.setLayout(null);
BackPanel.setBackground(Color.WHITE);
BackPanel.setBounds(0,0, MainDisplay.Width, MainDisplay.Height);
BackPanel.setOpaque(true);
/*
HeadingBreak.setBackground(Color.WHITE);
HeadingBreak.setBounds(0, 80, MainDisplay.Width, 3);
HeadingBreak.setOpaque(true);
*/
/*
HorizontalSplit1.setBackground(Color.WHITE);
HorizontalSplit1.setBounds(0, MainDisplay.Height/2, MainDisplay.Width, 3);
HorizontalSplit1.setOpaque(true);
*/
/*
HorizontalSplit2.setBackground(Color.WHITE);
HorizontalSplit2.setBounds(0, MainDisplay.Height/2+80, MainDisplay.Width, 3);
HorizontalSplit2.setOpaque(true);
*/
/*
VerticalSplit.setBackground(Color.WHITE);
VerticalSplit.setBounds((int)(MainDisplay.Width/1.5), 0, 3, MainDisplay.Height);
VerticalSplit.setOpaque(true);
*/
//Target area settings. 

Target.setFont(new Font("Arial", Font.BOLD, 85));
Target.setForeground(Color.GREEN);
Target.setBounds(0, 0, ((int)(MainDisplay.Width/1.5)-3), 75);
Target.setHorizontalAlignment(SwingConstants.CENTER);
gbc.gridx = 0;
gbc.gridy = 0;
gbc.fill = GridBagConstraints.HORIZONTAL;
DarkPanel.add(Target, gbc);

ClientLabel.setForeground(Color.WHITE);
ClientLabel.setFont(new Font("Arial", Font.BOLD, 100));
ClientLabel.setBounds(0, 115, ((int)(MainDisplay.Width/1.5)-3), 95);
ClientLabel.setHorizontalAlignment(SwingConstants.CENTER);
gbc.gridx = 0;
gbc.gridy = 1;
gbc.fill = GridBagConstraints.HORIZONTAL;
DarkPanel.add(ClientLabel, gbc);


TargetServerData.setForeground(Color.WHITE);
TargetServerData.setFont(new Font("Arial", Font.BOLD, 120));
TargetServerData.setBounds(0, 230, ((int)(MainDisplay.Width/1.5)-3), 95);
TargetServerData.setHorizontalAlignment(SwingConstants.CENTER);
gbc.gridx = 0;
gbc.gridy = 2;
gbc.fill = GridBagConstraints.HORIZONTAL;
DarkPanel.add(TargetServerData, gbc);

ServerID.setForeground(Color.WHITE);
ServerID.setFont(new Font("Arial", Font.BOLD, 120));
ServerID.setBounds(0, 230, ((int)(MainDisplay.Width/1.5)-3), 95);
ServerID.setHorizontalAlignment(SwingConstants.CENTER);
gbc.gridx = 0;
gbc.gridy = 3;
gbc.fill = GridBagConstraints.HORIZONTAL;
DarkPanel.add(ServerID, gbc);

Attacker.setFont(new Font("Arial", Font.BOLD, 85));
Attacker.setForeground(Color.RED);
Attacker.setBounds(0, (MainDisplay.Height/2)+3, ((int)(MainDisplay.Width/1.5)-3), 75);
Attacker.setHorizontalAlignment(SwingConstants.CENTER);
gbc.gridx = 0;
gbc.gridy = 4;
gbc.fill = GridBagConstraints.HORIZONTAL;
DarkPanel.add(Attacker, gbc);

AttackerData.setForeground(Color.RED);
AttackerData.setFont(new Font("Arial", Font.BOLD, 70));
AttackerData.setBounds(0, ((int)(MainDisplay.Height/1.5)-3), ((int)(MainDisplay.Width/1.5)-3), 75);
AttackerData.setHorizontalAlignment(SwingConstants.CENTER);
gbc.gridx = 0;
gbc.gridy = 5;
gbc.fill = GridBagConstraints.HORIZONTAL;
DarkPanel.add(AttackerData, gbc);

GeoLocData.setFont(new Font("Arial", Font.BOLD, 70));
GeoLocData.setForeground(Color.RED);
GeoLocData.setBounds(0, (int)(MainDisplay.Height/1.2), ((int)(MainDisplay.Width/1.5)-3), 75);
GeoLocData.setHorizontalAlignment(SwingConstants.CENTER);
gbc.gridx = 0;
gbc.gridy = 6;
gbc.fill = GridBagConstraints.HORIZONTAL;
DarkPanel.add(GeoLocData, gbc);

ThreatLevel.setFont(new Font("Arial", Font.BOLD, 85));
ThreatLevel.setForeground(Color.GREEN);
ThreatLevel.setBounds(725, 0, ((int)(MainDisplay.Width/1.5)-3), 75);
ThreatLevel.setHorizontalAlignment(SwingConstants.CENTER);
gbc.gridx = 1;
gbc.gridy = 0;
gbc.fill = GridBagConstraints.HORIZONTAL;
DarkPanel.add(ThreatLevel, gbc);

ThreatLevelData.setFont(new Font("Arial", Font.BOLD, 100));
ThreatLevelData.setBounds(725, 105, ((int)(MainDisplay.Width/1.5)-3), 95);
ThreatLevelData.setHorizontalAlignment(SwingConstants.CENTER);
gbc.gridx = 1;
gbc.gridy = 1;
gbc.fill = GridBagConstraints.HORIZONTAL;
DarkPanel.add(ThreatLevelData, gbc);


NumberOfAttacks.setFont(new Font("Arial", Font.BOLD, 85));
NumberOfAttacks.setForeground(Color.RED);
NumberOfAttacks.setBounds(725, (MainDisplay.Height/2)+3, ((int)(MainDisplay.Width/1.5)-3), 75);
NumberOfAttacks.setHorizontalAlignment(SwingConstants.CENTER);
gbc.gridx = 1;
gbc.gridy = 2;
gbc.fill = GridBagConstraints.HORIZONTAL;
DarkPanel.add(NumberOfAttacks, gbc);

NumberOfAttacksData.setFont(new Font("Arial", Font.BOLD, 85));
NumberOfAttacksData.setForeground(Color.RED);
NumberOfAttacksData.setBounds(725, (int) ((MainDisplay.Height/1.5)), ((int)(MainDisplay.Width/1.5)-3), 75);
NumberOfAttacksData.setHorizontalAlignment(SwingConstants.CENTER);
gbc.gridx = 1;
gbc.gridy = 3;
gbc.fill = GridBagConstraints.HORIZONTAL;
DarkPanel.add(NumberOfAttacksData, gbc);

GeoLocLabel.setFont(new Font("Arial", Font.BOLD, 85));
GeoLocLabel.setForeground(Color.RED);
GeoLocLabel.setBounds(0, (MainDisplay.Height/2)+3, ((int)(MainDisplay.Width/1.5)-3), 75);
GeoLocLabel.setHorizontalAlignment(SwingConstants.CENTER);
gbc.gridx = 1;
gbc.gridy = 4;
gbc.fill = GridBagConstraints.HORIZONTAL;
DarkPanel.add(GeoLocLabel, gbc);

GeoLocImg.setBounds(1050, 590, 300, 300);
GeoLocImg.setHorizontalAlignment(SwingConstants.CENTER);
gbc.gridx = 1;
gbc.gridy = 5;
gbc.gridheight = 2;
gbc.fill = GridBagConstraints.HORIZONTAL;
DarkPanel.add(GeoLocData, gbc);

//Remaining settings.
/*
//DarkPanel.setLayout(null);
//DarkPanel.setBackground(Color.BLACK);
//DarkPanel.setBounds(3, 3, ((MainDisplay.Width)-6), ((MainDisplay.Height)-6));
//DarkPanel.setOpaque(true);
////DarkPanel.add(Target);
//DarkPanel.add(HeadingBreak);
//DarkPanel.add(VerticalSplit);
//DarkPanel.add(HorizontalSplit1);
//DarkPanel.add(HorizontalSplit2);
DarkPanel.add(ClientLabel);
DarkPanel.add(TargetServerData);
DarkPanel.add(ThreatLevel);
DarkPanel.add(ThreatLevelData);
DarkPanel.add(Attacker);
DarkPanel.add(AttackerData);
DarkPanel.add(NumberOfAttacks);
DarkPanel.add(NumberOfAttacksData);
DarkPanel.add(GeoLocData);
DarkPanel.add(GeoLocImg);
*/

BackPanel.add(DarkPanel);

MainDisplay.pane.add(BackPanel, new Integer(0), 0);

}

public void getGeoLoc()
{
String locHolder;
try {
    geoLocRetriever = new URL("http://ip-api.com/line/*******"); //+ MainDisplay.getAttackerIpHolder()
} catch (MalformedURLException e) {
    e.printStackTrace();
}

InputStream stream = null;
try {
    stream = geoLocRetriever.openStream();
} catch (IOException e1) {
    e1.printStackTrace();
}
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
if (stream != null) try {
    final BufferedInputStream input = new BufferedInputStream(stream);
    final byte[] reader = new byte[16384];
    int r = 0;
    while ((r = input.read(reader, 0, 16384)) != -1)
        buffer.write(reader, 0, r);
    buffer.flush();
} catch(IOException e) {
    e.printStackTrace();
} finally {
    if(stream != null) try {
        stream.close();
    } catch(IOException e) {
        e.printStackTrace();
    }
}


locHolder = new String(buffer.toByteArray());
String[] lines = locHolder.split("\n");
//System.out.print(lines[5]);

city = lines[5];
region = lines[4];
latitude = lines[7];
longitude = lines[8];

String temp;
temp="https://maps.googleapis.com/maps/api/staticmap?center=" +latitude +"," +longitude +"&zoom=7&size=300x300&markers=color:red|label:A|" +latitude +"," +longitude +"&sensor=false";
URL mapurl = null;
try {
    mapurl = new URL(temp);
} catch (MalformedURLException e) {
    e.printStackTrace();
}
try {
    img = ImageIO.read(mapurl);
} catch (IOException e) {
    e.printStackTrace();
}
icon = new ImageIcon(img);  
}

public void ShowThreats(){

    String targetEnd = MainDisplay.getTargetIpHolder();     
    TargetServerData.setText(targetEnd);

    String attackerEnd = MainDisplay.getAttackerIpHolder();
    AttackerData.setText(attackerEnd);

    getGeoLoc();
    String geoLocEnd = city + "," + region;
    GeoLocData.setText(geoLocEnd);
    GeoLocImg.setIcon(icon);


    int threatLevelEnd = MainDisplay.getThreatLevelHolder();
    //System.out.println(threatLevelEnd);
    if ((threatLevelEnd > TEST ) && (threatLevelEnd < TEST2)){
        ThreatLevelData.setText("WARNING");
        ThreatLevelData.setForeground(Color.YELLOW);
    }
    else if ((threatLevelEnd > TEST2 ) && (threatLevelEnd < TEST3)){
        ThreatLevelData.setText("SEVERE");
        ThreatLevelData.setForeground(severeColor);
    }
    else if (threatLevelEnd > TEST3){
        ThreatLevelData.setText("CRITICAL");
        ThreatLevelData.setForeground(Color.RED);
    }
    else{
        ThreatLevelData.setText("ERROR");
        ThreatLevelData.setForeground(Color.PINK);
    }

    String numAttacksEnd = MainDisplay.getNumAttacks();
    NumberOfAttacksData.setText(numAttacksEnd);
    //System.out.println(numAttacksEnd);

}

}

Go to Window --> Show View --> general --> Problems and you will see the list of errors.转到窗口 --> 显示视图 --> 常规 --> 问题,您将看到错误列表。 In my case - I had a wrong source folder in Build Path.就我而言 - 我在构建路径中有一个错误的源文件夹。 Configuring Build Path solved the "Error exists in your project" issue.配置构建路径解决了“您的项目中存在错误”问题。 In the 'problems' view - rt click on the error and quick fix- this solved the issue.在“问题”视图中 - 单击错误并快速修复 - 这解决了问题。

It may be a JRE error.可能是 JRE 错误。 Right click the project root and select preferences.右键单击项目根目录并选择首选项。 Come to installed JREs and look for an error.来到已安装的 JRE 并查找错误。 Also, rebuild the project and check Window > Show View > Error Log , as suggested in a comment by @Ted Hopp.此外,按照@Ted Hopp 的评论中的建议,重建项目并检查Window > Show View > Error Log

好的,就我而言, Problems视图中没有任何内容,帮助我的是更新 maven 依赖项(右键单击项目 > Maven > 更新项目),我选择所有相关项目,然后警告消失。

Go to Window → Show View → general → Problems and you will see the list of errors.转到窗口 → 显示视图 → 常规 → 问题,您将看到错误列表。 In my case, some of the JAR files were missing on the build path.就我而言,构建路径中缺少一些 JAR 文件。 Configuring Build Path solved the "Error exists in your project" issue.配置构建路径解决了“您的项目中存在错误”问题。 In the 'problems' view, right click on the error and quick fix.在“问题”视图中,右键单击错误并快速修复。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM