我已经编写了第一个Java小程序,并在将其部署到Web服务器上时出错.我的applet使用了几个其他的jar文件,例如javaMail mail.jar,smtp.jar,mailapi.jar和其他文件.当我尝试在Web浏览器中显示我的applet时,我在“错误对话框”中得到了这样的信息:

java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/mail/Authenticator

..

Caused by: java.lang.NoClassDefFoundError: javax/mail/Authenticator

... 20 more

我对Web应用程序不是很好,并且不确定是什么导致此错误.根据信息,我认为我的小程序无法加载库.那么我该如何解决呢?我的服务器在/ lib目录中有这些库.所有其他文件都在主目录中.我的HTML文件如下:

TPSA Speed Test

我也尝试使用JNLP将小程序加载到Web浏览器,效果相同.我试图找到某种方法来指向HTML文件中的那些库,但是却没有进行管理(试图在JNLP文件中添加另一个jar归档行或nativelib).我也尝试使用我的applet类将这些库添加到jar文件中,但这也无济于事.

这是我在其中使用javaMail的代码(代码结尾附近的sendTestResults()方法):

/*

* AppletMain.java

*/

package speedtester_pkg;

import java.awt.*;

import java.beans.*;

import java.io.*;

import java.util.*;

import java.util.logging.*;

import javax.swing.*;

import javax.mail.Address;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

public class AppletMain extends javax.swing.JApplet implements PropertyChangeListener{

private ArrayList customerFields;

private DataReader dataReader;

private Test test;

private FileHandler fh;

private ProgressBarTask progressBarTask;

private JTextField[] customerData;

private String speed, cpuLoad, NICspeed, testTime;

private int timeDef = 60;

/**

* The input file directory

*/

// public String directory = "C:\\Documents and Settings\\Administrator\\Pulpit\\";

public String filename = "speedtestData.txt";

/**

* Input file should be a simple "*.txt" file named "speedtestData.txt"

*/

public File file;

// mail sending data

/**

* TO DO encrypt mailing data

*/

private String smtpHost = "smtp.gmail.com",

username = "myUserName",

password = "myPassword";

private int port = 465; // TLS 587/ SSL 465

/** Initializes the applet Applet */

@Override

public void init() {

try {

java.awt.EventQueue.invokeAndWait(new Runnable() {

public void run() {

createGUI();

}

});

} catch (Exception ex) {

ex.printStackTrace();

}

}

/** This method is called from within the init() method to

* initialize the form.

* WARNING: Do NOT modify this code. The content of this method is

* always regenerated by the Form Editor.

*/

@SuppressWarnings("unchecked")

//

private void initComponents() {

infoPanel = new javax.swing.JPanel();

labelLogo = new javax.swing.JLabel();

labelTitle = new javax.swing.JLabel();

labelLinkSpeed = new javax.swing.JLabel();

labelProcessorLoad = new javax.swing.JLabel();

labelNIC = new javax.swing.JLabel();

buttonStart = new javax.swing.JButton();

jLabel4 = new javax.swing.JLabel();

jLabel5 = new javax.swing.JLabel();

jLabel6 = new javax.swing.JLabel();

jProgressBar = new javax.swing.JProgressBar();

formPanel = new javax.swing.JPanel();

jLabel8 = new javax.swing.JLabel();

buttonSend = new javax.swing.JButton();

labelForm = new javax.swing.JLabel();

infoLabel = new javax.swing.JLabel();

jScrollPane = new javax.swing.JScrollPane();

commentText = new javax.swing.JTextArea();

labelTitle.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N

labelTitle.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

labelTitle.setText("Link Speed Test");

labelLinkSpeed.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N

labelLinkSpeed.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

labelProcessorLoad.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N

labelProcessorLoad.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

labelNIC.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N

labelNIC.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);

buttonStart.setText("Start");

buttonStart.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

buttonStartActionPerformed(evt);

}

});

jLabel4.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N

jLabel4.setText("Szybko?? ??cza:");

jLabel5.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N

jLabel5.setText("Obci??enie procesora:");

jLabel6.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N

jLabel6.setText("Szybko?? karty sieciowej:");

javax.swing.GroupLayout infoPanelLayout = new javax.swing.GroupLayout(infoPanel);

infoPanel.setLayout(infoPanelLayout);

infoPanelLayout.setHorizontalGroup(

infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, infoPanelLayout.createSequentialGroup()

.addComponent(labelLogo, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addGroup(infoPanelLayout.createSequentialGroup()

.addGroup(infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabel5)

.addComponent(jLabel6)

.addComponent(jLabel4))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(labelLinkSpeed, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 146, Short.MAX_VALUE)

.addComponent(labelProcessorLoad, javax.swing.GroupLayout.DEFAULT_SIZE, 146, Short.MAX_VALUE)

.addComponent(labelNIC, javax.swing.GroupLayout.DEFAULT_SIZE, 146, Short.MAX_VALUE)))

.addComponent(labelTitle, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 289, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(22, 22, 22))

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, infoPanelLayout.createSequentialGroup()

.addContainerGap(352, Short.MAX_VALUE)

.addComponent(buttonStart, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE))

);

infoPanelLayout.setVerticalGroup(

infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(infoPanelLayout.createSequentialGroup()

.addContainerGap()

.addGroup(infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, infoPanelLayout.createSequentialGroup()

.addComponent(labelTitle)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)

.addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(labelLinkSpeed, javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabel5)

.addComponent(labelProcessorLoad, javax.swing.GroupLayout.PREFERRED_SIZE, 21, javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(infoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabel6)

.addComponent(labelNIC, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(6, 6, 6))

.addGroup(infoPanelLayout.createSequentialGroup()

.addGap(16, 16, 16)

.addComponent(labelLogo, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 8, Short.MAX_VALUE)

.addComponent(buttonStart)

.addContainerGap())

);

javax.swing.GroupLayout formPanelLayout = new javax.swing.GroupLayout(formPanel);

formPanel.setLayout(formPanelLayout);

formPanelLayout.setHorizontalGroup(

formPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGap(0, 417, Short.MAX_VALUE)

);

formPanelLayout.setVerticalGroup(

formPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGap(0, 127, Short.MAX_VALUE)

);

jLabel8.setText("Uwagi:");

buttonSend.setText("Wy?lij");

buttonSend.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

buttonSendActionPerformed(evt);

}

});

labelForm.setFont(new java.awt.Font("Tahoma", 0, 14));

labelForm.setText("Formularz:");

infoLabel.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N

infoLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);

infoLabel.setText("Kliknij przycisk \"Start\" aby rozpocz?? test");

commentText.setColumns(20);

commentText.setRows(5);

jScrollPane.setViewportView(commentText);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGap(0, 437, Short.MAX_VALUE)

.addGap(0, 437, Short.MAX_VALUE)

.addGroup(layout.createSequentialGroup()

.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 417, Short.MAX_VALUE)

.addComponent(formPanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(infoLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 417, Short.MAX_VALUE)

.addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jProgressBar, javax.swing.GroupLayout.DEFAULT_SIZE, 417, Short.MAX_VALUE)

.addComponent(infoPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(labelForm)

.addComponent(buttonSend, javax.swing.GroupLayout.Alignment.TRAILING))

.addContainerGap())

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGap(0, 572, Short.MAX_VALUE)

.addGap(0, 572, Short.MAX_VALUE)

.addGroup(layout.createSequentialGroup()

.addComponent(infoPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(jProgressBar, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(infoLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(labelForm)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(formPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 16, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(buttonSend)

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

);

}//

public void createGUI()

{

try {

dataReader = new DataReader(this);

dataReader.read();

customerFields = dataReader.getCustomerFields();

testTime = String.valueOf(dataReader.getTestTime());

initComponents();

generateCustomerForm();

test = new Test(this, dataReader.getDownloadURLs(), dataReader.getTestTime());

} catch (ClassNotFoundException ex) {

Logger.getLogger(AppletMain.class.getName()).log(Level.SEVERE, null, ex);

} catch (InstantiationException ex) {

Logger.getLogger(AppletMain.class.getName()).log(Level.SEVERE, null, ex);

} catch (IllegalAccessException ex) {

Logger.getLogger(AppletMain.class.getName()).log(Level.SEVERE, null, ex);

} catch (UnsupportedLookAndFeelException ex) {

Logger.getLogger(AppletMain.class.getName()).log(Level.SEVERE, null, ex);

} catch (FileNotFoundException ex) {

Logger.getLogger(AppletMain.class.getName()).log(Level.SEVERE, null, ex);

}

}

private void buttonStartActionPerformed(java.awt.event.ActionEvent evt) {

buttonStart.setEnabled(false);

infoLabel.setText("Poczekaj do końca testu...");

progressBarTask = new ProgressBarTask(this);

infoLabel.setText("progress bar");

progressBarTask.addPropertyChangeListener(this);

progressBarTask.execute();

Thread testThread = new Thread(this.test);

testThread.start();

System.out.println("Test thread \"" + testThread.getName() + "\" started.");

}

private void buttonSendActionPerformed(java.awt.event.ActionEvent evt) {

try {

sendTestResults();

} catch (MessagingException ex) {

Logger.getLogger(AppletMain.class.getName()).log(Level.SEVERE, null, ex);

} catch (UnsupportedEncodingException ex) {

Logger.getLogger(AppletMain.class.getName()).log(Level.SEVERE, null, ex);

}

}

private void generateCustomerForm() throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException

{

UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());

//correcting auto-generated layout

jLabel8.setFont(new java.awt.Font("Tahoma", 0, 11));

labelProcessorLoad.setAlignmentX(RIGHT_ALIGNMENT);

labelLogo.setIcon(new ImageIcon(getImage(getDocumentBase(), "orange.jpeg")));

//gereate JLabels and JTextFields read from file

GridBagLayout gridBagLayout = new GridBagLayout();

GridBagConstraints gbc = new GridBagConstraints();

formPanel.setLayout(gridBagLayout);

customerData = new JTextField[customerFields.size()];

for(int i=0; i

{

JLabel l = new JLabel(customerFields.get(i));

l.setFont(new java.awt.Font("Tahoma", 0, 11));

gbc.fill = GridBagConstraints.HORIZONTAL;

gbc.gridx=0;

gbc.gridy=i;

gbc.weightx = 0.5;

gbc.weighty = 0.5;

formPanel.add(l, gbc);

JTextField t = new JTextField();

t.setFont(new java.awt.Font("Tahoma", 0, 11));

gbc.fill = GridBagConstraints.HORIZONTAL;

gbc.gridx=1;

gbc.gridy=i;

gbc.weightx = 0.5;

gbc.weighty = 0.5;

formPanel.add(t, gbc);

customerData[i] = t;

}

}

/**

* Invoked when task's progress property changes.

*/

public void propertyChange(PropertyChangeEvent evt) {

if (evt.getPropertyName().equals("progress")) {

int progress = (Integer) evt.getNewValue();

jProgressBar.setValue(progress);

}

}

public void setLabelProcessorLoad(String text)

{

labelProcessorLoad.setText(text);

}

public void setLabelLinkSpeed(String text)

{

labelLinkSpeed.setText(text);

}

public void setLabelNIC(String text)

{

labelNIC.setText(text);

}

public JProgressBar getProgressBar()

{

return jProgressBar;

}

public JButton getButtonStart()

{

return buttonStart;

}

public Test getTest()

{

return this.test;

}

public void setNICspeed(String NICspeed) {

this.NICspeed = NICspeed;

}

public void setCpuLoad(String cpuLoad) {

this.cpuLoad = cpuLoad;

}

public void setSpeed(String speed) {

this.speed = speed;

}

public JLabel getInfoLabel() {

return infoLabel;

}

/**

* Prepares e-mail message for sending via google SMTP protocol with SSL

*/

private void sendTestResults() throws MessagingException, UnsupportedEncodingException{

Properties props = new Properties();

props.put("mail.smtp.host", "smtp.gmail.com");

props.put("mail.smtp.socketFactory.port", "465");

props.put("mail.smtp.socketFactory.class",

"javax.net.ssl.SSLSocketFactory");

props.put("mail.smtp.auth", "true");

props.put("mail.smtp.port", "465");

Session session = Session.getDefaultInstance(props,

new javax.mail.Authenticator() {

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(username,password);

}

});

MimeMessage message = new MimeMessage(session);

//Setting message fields

Address toAddress = new InternetAddress(dataReader.getMail(), "SpeedTest crew");

message.addRecipient(Message.RecipientType.TO, toAddress);

message.setSubject("SpeedTest");

message.setText(prepareMailText(), "UTF8");

Transport.send(message);

infoLabel.setText("Wiadomo?? z wynikami testu zosta?a wys?ana pomy?lnie");

System.out.println("Mail sent.");

}

/**

* Gets all test results and customer data and prepares mail content

* @return the content of e-mail body

*/

private String prepareMailText()

{

String messageContentHeader = "Pr?dko?? pobierania\t" + "Obci??enie procesora\t" +

"Szybko?? ??cza karty sieciowej\t" + "Czas trwania testu\t";

String messageContent = speed + "\t"+ cpuLoad + "\t" + NICspeed + "\t" + testTime + "\t";

for(int j=0;j

{

messageContentHeader += customerFields.get(j) + "\t";

messageContent += customerData[j].getText() + "\t";

}

messageContentHeader += "Uwagi";

messageContent += commentText.getText();

String messageText = messageContentHeader + "\n" + messageContent;

return messageText;

}

// Variables declaration - do not modify

private javax.swing.JButton buttonSend;

private javax.swing.JButton buttonStart;

private javax.swing.JTextArea commentText;

private javax.swing.JPanel formPanel;

private javax.swing.JLabel infoLabel;

private javax.swing.JPanel infoPanel;

private javax.swing.JLabel jLabel4;

private javax.swing.JLabel jLabel5;

private javax.swing.JLabel jLabel6;

private javax.swing.JLabel jLabel8;

private javax.swing.JProgressBar jProgressBar;

private javax.swing.JScrollPane jScrollPane;

private javax.swing.JLabel labelForm;

private javax.swing.JLabel labelLinkSpeed;

private javax.swing.JLabel labelLogo;

private javax.swing.JLabel labelNIC;

private javax.swing.JLabel labelProcessorLoad;

private javax.swing.JLabel labelTitle;

// End of variables declaration

}

我对Sigar.jar之类的其他库也遇到了问题,但我想它将解决类似问题.

有人有好的秘诀?

java.lang.applet_Java Applet RuntimeException:java.lang.NoClassDefFoun...相关推荐

  1. Java 9 - 17 特性解读:​Java 13

    Java 13在2019年9月发布,这个版本引入的正式可用特性几乎没有,是我认为最无聊的版本之一.所以我们跳过Java 13直接来看Java 14吧. Switch表达式 我觉得switch表达式在日 ...

  2. 【JAVA编码专题】 JAVA字符编码系列三:Java应用中的编码问题

    这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...

  3. java进出栈_JVM函数调用:Java出入栈

    JVM函数调用:Java出入栈 JVM函数调用:Java出入栈 目录 局部变量表 索引复用 垃圾回收 栈数据区 栈上分配 线程作为系统运算调度的最小单位,在JVM中线程的行为体现就是函数调用,函数调用 ...

  4. java架构师之路:JAVA程序员必看的15本书的电子版下载地址

    java架构师之路:JAVA程序员必看的15本书的电子版下载地址 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一 ...

  5. Java操作Excel之POI:java读写excel文件以及打印设置

    Java操作Excel之POI:java读写excel文件以及打印设置 POI的jar包下载地址:http://poi.apache.org/download.html 注意:项目中导入poi 4.0 ...

  6. java.lang包含_原因:java.lang.IllegalArgumentException:包含(1)...

    我正在开发Spring Boot Redis示例.在此示例中,我开发了一些自定义方法,这些方法基于RoleName提取详细信息.对于以下方法userRepository.findByRole_Role ...

  7. Java使用ObjectInputStream时报错:java.lang.ClassNotFoundException: commen.User

    在编写服务器和客户端代码时,双方持有共同的User类.Message类等,且之间通过对象进行传输.但是在服务器接收到客户端发来的数据,并且向下转型时报出错误: java.lang.ClassNotFo ...

  8. java关闭applet_java – Applet会自动关闭

    我的 java应用程序发生了非常奇怪的事情.总之,问题是它有时会在30-60秒的工作后自行关闭. 具体情况如下: >该应用程序实际上是在applet设置中启动的,applet加载主应用程序jar ...

  9. Java基础知识强化99:Java 常见异常及趣味解释

    常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎:) 1. java.lang java.lang软件包是java语言的核心部分,它提供了java中的基础类. java.la ...

最新文章

  1. 关于通讯作者、第一作者的那点事,你想知道的全都在这里!
  2. OAF中下载附件之后页面失效,报过时的数据异常,浏览器后退异常
  3. CSS之:active选择器
  4. Qt UDP的初步使用
  5. 数据结构基础(10) --单链表迭代器的设计与实现
  6. linux中ftp的工作原理,Linux系统学习 十二、VSFTP服务—简介与原理
  7. 头部导航菜单选中状态切换
  8. centos 6.5 安装mysql rpm_centos6.5 rpm 安装mysql5.6
  9. php华文行楷,css设置中文字体
  10. python词组语义相似度_语义相似度
  11. geodatabase怎么连接MySQL_实用帖-手把手教你如何上传GEO数据库
  12. 级联rc滤波_了解无源RC滤波器,看完这篇你就懂了(二)
  13. c语言编程植物信息查询系统,C:\WINDOWS\Desktop\导航库\植物\xzjs\hzc.htm
  14. 已解决:Failure to find com.oracle:ojdbc6:jar:11.2.0.4.0-atlassian-hosted
  15. HTML视频学习教程,让你实战入门前端
  16. leetcode 1884-鸡蛋掉落-两枚鸡蛋
  17. Logger日志文件记录
  18. 贵州邮政:IMO班聊让内部沟通信息跳涨10万+
  19. 运用最合适的解套方法--补仓五大诀窍
  20. 压铸模拟-梁形铝合金压铸件变形研究

热门文章

  1. 静态代码块与静态函数的执行顺序
  2. 创建触发器,将数据库中表的修改记录进日志表
  3. .net无刷新验证码
  4. 安装ssr_网易《代号SSR》电脑版教程!
  5. 广度优先搜索——奇怪的电梯(洛谷 P1135)
  6. c语言switch自动贩卖机,JAVA程式-自动贩卖机SWITCHampCASE.doc
  7. 资源放送丨《容灾体系建设之“独孤九式”》PPT视频
  8. 拥抱时序数据库,构筑IoT时代下智慧康养数据存储底座
  9. 为了减少代码复杂度,我将if-else升级为面向状态编程
  10. 4项探索+4项实践,带你了解华为云视觉预训练研发技术