- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到以下异常。任何人请帮我解决这个问题。我正在 netbeans 8 IDE 中执行它。 jdk 7(32 位)。我正在尝试在 TextArea 中显示控制台输出。
错误:
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code - unreported exception java.lang.Exception; must be caught or declared to be thrown
at NewJFrame.captureActionPerformed(NewJFrame.java:127)
at NewJFrame.access$000(NewJFrame.java:22)
at NewJFrame$1.actionPerformed(NewJFrame.java:66)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
BUILD SUCCESSFUL (total time: 12 seconds)
源代码:
import jpcap.*;
import jpcap.NetworkInterface;
import java.io.IOException;
import jpcap.packet.DatalinkPacket;
import jpcap.packet.EthernetPacket;
import jpcap.packet.ICMPPacket;
import jpcap.packet.IPPacket;
import jpcap.packet.Packet;
import jpcap.packet.TCPPacket;
import jpcap.packet.UDPPacket;
/**
*
* @author Rahul
*/
public class NewJFrame extends javax.swing.JFrame implements PacketReceiver {
static NetworkInterface [] devices;
static int j = 0;
int interface_index;
String protocoll[] = {"HOPOPT", "ICMP", "IGMP", "GGP", "IPV4", "ST", "TCP", "CBT", "EGP", "IGP", "BBN", "NV2", "PUP", "ARGUS", "EMCON", "XNET", "CHAOS", "UDP", "mux"};
/**
* Creates new form NewJFrame
*/
public NewJFrame() {
initComponents();
devices = JpcapCaptor.getDeviceList();
for (int i = 0; i < devices.length; i++)
{
result.append(i + " :" + devices[i].name + "(" + devices[i].description + ")\n");
}
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
capture = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
result = new javax.swing.JTextArea();
select = new javax.swing.JButton();
indexx = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Packet Analyzer");
capture.setText("CAPTURE");
capture.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
captureActionPerformed(evt);
}
});
jButton2.setText("STOP");
result.setColumns(20);
result.setRows(5);
jScrollPane1.setViewportView(result);
select.setText("Select");
select.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
selectActionPerformed(evt);
}
});
jLabel1.setText("Enter device index:");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(52, 52, 52)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 596, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(88, 88, 88)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(indexx))
.addGap(18, 18, 18)
.addComponent(select)
.addGap(113, 113, 113)
.addComponent(capture)
.addGap(74, 74, 74)
.addComponent(jButton2)))
.addGap(58, 58, 58))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(26, 26, 26)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 164, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 32, Short.MAX_VALUE)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(capture)
.addComponent(jButton2)
.addComponent(select)
.addComponent(indexx, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(41, 41, 41))
);
pack();
}// </editor-fold>
private void captureActionPerformed(java.awt.event.ActionEvent evt) {
capturepacket();
}
public void capturepacket() throws Exception {
JpcapCaptor jpcap = JpcapCaptor.openDevice(devices[2], 2000, true, 20);
jpcap.loopPacket(-1, new NewJFrame());
}
private void selectActionPerformed(java.awt.event.ActionEvent evt) {
interface_index = Integer.parseInt(indexx.getText());
result.setText(" ");
}
public void receivePacket(Packet packet)
{
result.append(packet + "\n");
result.append("this is packet " + j + " :" + "\n");
j++;
IPPacket tpt=(IPPacket)packet;
if (packet != null)
{
int ppp=tpt.protocol;
String proto=protocoll[ppp];
result.append("about the ip packet in network layer : \n");
result.append("\n******************************************************************");
if(tpt.dont_frag)
{
result.append("\ndft bi is set. packet will not be fragmented \n");
}
else
{
result.append("\ndft bi is not set. packet will be fragmented \n");
}
result.append("\n \n destination ip is :"+tpt.dst_ip);
result.append("\n\n this is source ip :"+tpt.src_ip);
result.append("\n\n this is hop limit :"+tpt.hop_limit);
result.append("\n \n this is identification field :"+tpt.ident);
result.append("\n \npacket length :"+tpt.length);
result.append("\n\n packet priority :"+(int)tpt.priority);
result.append("\ntype of service field"+tpt.rsv_tos);
if(tpt.r_flag)
{
result.append("\nreleiable transmission");
}
else
{
result.append("\nnot reliable");
}
result.append("\nprotocol version is : "+(int)tpt.version);
result.append("\nflow label field"+tpt.flow_label);
result.append("\n**********************************************************************");
result.append("\ndatalink level analysis");
result.append("\n********************************************************************");
DatalinkPacket dp = packet.datalink;
EthernetPacket ept=(EthernetPacket)dp;
result.append("\nthis is destination mac address :"+ept.getDestinationAddress());
result.append("\n this is source mac address"+ept.getSourceAddress());
System.out.println("*********************************************************************");
result.append("\nthis is about type of packet");
result.append("\n******************************************************************************");
if (proto.equals(("TCP"))) {
result.append(" /n this is TCP packet");
TCPPacket tp = (TCPPacket) packet;
result.append("\nthis is destination port of tcp :" + tp.dst_port);
if (tp.ack) {
result.append("\n" + "this is an acknowledgement");
} else {
result.append("\nthis is not an acknowledgment packet");
}
if (tp.rst) {
result.append("\nreset connection ");
}
result.append(" \n protocol version is :" + tp.version);
result.append("\n this is destination ip " + tp.dst_ip);
result.append("\nthis is source ip"+tp.src_ip);
if(tp.fin){
result.append("\nsender does not have more data to transfer");
}
if(tp.syn){
result.append("\n request for connection");
}
}else if(proto.equals("ICMP")){
ICMPPacket ipc=(ICMPPacket)packet;
// java.net.InetAddress[] routers=ipc.router_ip;
//for(int t=0;t
// System.out.println("\n"+routers[t]);
// }
result.append(" \n this is alive time :"+ipc.alive_time);
result.append("\n number of advertised address :"+(int)ipc.addr_num);
result.append("mtu of the packet is :"+(int)ipc.mtu);
result.append("subnet mask :"+ipc.subnetmask);
result.append("\n source ip :"+ipc.src_ip);
result.append("\n destination ip:"+ipc.dst_ip);
result.append("\n check sum :"+ipc.checksum);
result.append("\n icmp type :"+ipc.type);
result.append("");
}else if(proto.equals("UDP")){
UDPPacket pac=(UDPPacket)packet;
result.append("\nthis is udp packet \n");
result.append("\nthis is source port :"+pac.src_port);
result.append("\nthis is destination port :"+pac.dst_port);
}
result.append("\n******************************************************");
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton capture;
private javax.swing.JTextField indexx;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
public static javax.swing.JTextArea result;
private javax.swing.JButton select;
// End of variables declaration
}
最佳答案
错误消息相当清楚:
unreported exception java.lang.Exception; must be caught or declared to be thrown
您正在调用一个引发已检查异常的方法,Exception
,但您从未捕获该异常的代码中调用它,并且不报告该异常(调用代码)抛出它。请参阅this tutorial有关详细信息,请访问 Oracle Java 网站,但基本上这是一个简单的案例:
假设您需要调用方法 foo
并且它的声明如下:
void foo()
throws Exception {
// ...
}
这表示foo
中的代码可能会抛出异常Exception
。现在,假设我们有这个方法 bar
:
void bar() {
this.foo(); // Problem
}
bar
并没有说它抛出 Exception
,但它调用 foo
而不将该调用包装在 try/catch
捕获 foo
表示它可能抛出的异常。 bar
要么需要捕获异常并处理它:
void bar() {
try {
this.foo();
}
catch (Exception e) {
// Handle the exception appropriately
}
}
...或者声明 bar
可能会抛出异常:
void bar()
throws Exception {
this.foo(); // Problem
}
关于java - 请帮我解决这个JAVA异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22763570/
我正在编写一个具有以下签名的 Java 方法。 void Logger(Method method, Object[] args); 如果一个方法(例如 ABC() )调用此方法 Logger,它应该
我是 Java 新手。 我的问题是我的 Java 程序找不到我试图用作的图像文件一个 JButton。 (目前这段代码什么也没做,因为我只是得到了想要的外观第一的)。这是我的主课 代码: packag
好的,今天我在接受采访,我已经编写 Java 代码多年了。采访中说“Java 垃圾收集是一个棘手的问题,我有几个 friend 一直在努力弄清楚。你在这方面做得怎么样?”。她是想骗我吗?还是我的一生都
我的 friend 给了我一个谜语让我解开。它是这样的: There are 100 people. Each one of them, in his turn, does the following
如果我将使用 Java 5 代码的应用程序编译成字节码,生成的 .class 文件是否能够在 Java 1.4 下运行? 如果后者可以工作并且我正在尝试在我的 Java 1.4 应用程序中使用 Jav
有关于why Java doesn't support unsigned types的问题以及一些关于处理无符号类型的问题。我做了一些搜索,似乎 Scala 也不支持无符号数据类型。限制是Java和S
我只是想知道在一个 java 版本中生成的字节码是否可以在其他 java 版本上运行 最佳答案 通常,字节码无需修改即可在 较新 版本的 Java 上运行。它不会在旧版本上运行,除非您使用特殊参数 (
我有一个关于在命令提示符下执行 java 程序的基本问题。 在某些机器上我们需要指定 -cp 。 (类路径)同时执行java程序 (test为java文件名与.class文件存在于同一目录下) jav
我已经阅读 StackOverflow 有一段时间了,现在我才鼓起勇气提出问题。我今年 20 岁,目前在我的家乡(罗马尼亚克卢日-纳波卡)就读 IT 大学。足以介绍:D。 基本上,我有一家提供簿记应用
我有 public JSONObject parseXML(String xml) { JSONObject jsonObject = XML.toJSONObject(xml); r
我已经在 Java 中实现了带有动态类型的简单解释语言。不幸的是我遇到了以下问题。测试时如下代码: def main() { def ks = Map[[1, 2]].keySet()
一直提示输入 1 到 10 的数字 - 结果应将 st、rd、th 和 nd 添加到数字中。编写一个程序,提示用户输入 1 到 10 之间的任意整数,然后以序数形式显示该整数并附加后缀。 public
我有这个 DownloadFile.java 并按预期下载该文件: import java.io.*; import java.net.URL; public class DownloadFile {
我想在 GUI 上添加延迟。我放置了 2 个 for 循环,然后重新绘制了一个标签,但这 2 个 for 循环一个接一个地执行,并且标签被重新绘制到最后一个。 我能做什么? for(int i=0;
我正在对对象 Student 的列表项进行一些测试,但是我更喜欢在 java 类对象中创建硬编码列表,然后从那里提取数据,而不是连接到数据库并在结果集中选择记录。然而,自从我这样做以来已经很长时间了,
我知道对象创建分为三个部分: 声明 实例化 初始化 classA{} classB extends classA{} classA obj = new classB(1,1); 实例化 它必须使用
我有兴趣使用 GPRS 构建车辆跟踪系统。但是,我有一些问题要问以前做过此操作的人: GPRS 是最好的技术吗?人们意识到任何问题吗? 我计划使用 Java/Java EE - 有更好的技术吗? 如果
我可以通过递归方法反转数组,例如:数组={1,2,3,4,5} 数组结果={5,4,3,2,1}但我的结果是相同的数组,我不知道为什么,请帮助我。 public class Recursion { p
有这样的标准方式吗? 包括 Java源代码-测试代码- Ant 或 Maven联合单元持续集成(可能是巡航控制)ClearCase 版本控制工具部署到应用服务器 最后我希望有一个自动构建和集成环境。
我什至不知道这是否可能,我非常怀疑它是否可能,但如果可以,您能告诉我怎么做吗?我只是想知道如何从打印机打印一些文本。 有什么想法吗? 最佳答案 这里有更简单的事情。 import javax.swin
我是一名优秀的程序员,十分优秀!