小程序 CLASS_NOT_FOUND_EXCEPTION
Applet CLASS_NOT_FOUND_EXCEPTION
让我们创建小程序并将其添加到 jsp 页面,
使用的环境是 STS Spring Tool Suite
新建 -> 动态 Web 项目 -> 名称="WEBtest"
Java 资源 -> src-> new packeg="firstPack.secondPack.mainPack.appletPack" -> new class="MyApplet"
package firstPack.secondPack.mainPack.appletPack;
import java.awt.Color;
import javax.swing.JApplet;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class MyApplet extends JApplet {
@Override
public void init() {
super.init();
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
populateGUI();
}
});
} catch (Exception e) {
System.err.println("createGUI didn't complete successfully");
}
}
void populateGUI(){
JPanel panel=new JPanel();
panel.setBackground( Color.LIGHT_GRAY);
panel.add(new JLabel("QUAQ-QUAQ"));
add(panel);
this.revalidate();
}
}
运行 作为 -> Java 小程序
好的,可以了
web.xml 是自动创建的
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>WEBtest</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
所以...
Web 内容 -> 新 jsp="default"
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h6>DUCK</h6>
<h6>First TRY</h6>
<applet code="firstPack.secondPack.mainPack.appletPack.MyApplet"></applet>
<h6>Second TRY</h6>
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93">
<param name="code"
value="firstPack.secondPack.mainPack.appletPack.MyApplet">
</object>
<h6>Third TRY</h6>
<embed code="firstPack.secondPack.mainPack.appletPack.MyApplet"
type="application/x-java-applet;version=1.6" />
<h6>Fourth TRY</h6>
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93">
<param name="code"
value="firstPack.secondPack.mainPack.appletPack.MyApplet">
<comment> <embed
code="firstPack.secondPack.mainPack.appletPack.MyApplet"
type="application/x-java-applet;version=1.6">
<noembed> No Java Support. </noembed>
</embed> </comment>
</object>
</body>
</html>
现在将我们的项目拖放到 "Server"
服务器默认为STS:"Privotal tc Server Developer Edition v3.1"
启动服务器
在 http://localhost:8080/WEBtest/
打开浏览器
点击window
点击详情
CLASS_NOT_FOUND_EXCEPTION
这里是一些项目设置
因为从 "src" 到 "WEB-INF/classes" 的所有内容,那么我假设小程序中的 "code" 参数是可以的
尽管如此,我也尝试将 java 文件提取到 JAR 中,并添加 "archive" 参数,但是 CLASS_NOT_FOUND_EXCEPTION
我删除了PC上的所有java版本,然后安装了Java SE Development Kit 8 Update 40 (64 bit),还安装了Java 8 Update 40 (64 bit)
之后,我尝试从 docs.oracle.com 打开一些小程序示例但失败了,因此它要求我安装 Java 8 Update 40 而不是 64 位,所以现在我有两个,但是因为小程序示例工作正常我怀疑这是问题所在并保持原样
在谷歌搜索的第二天结束时,我有点绝望,但让它发挥作用很重要
since everything from "src" go to "WEB-INF/classes" then i assume that "code" parameter in applet is OK
只有服务器可以访问 WEB-INF/classes
和 WEB-INF/lib
路径。如果您尝试在小程序上直接获取(使用浏览器地址栏),您可能会看到 'forbidden' 页面。
小程序应该是public内容,在浏览器输入URL应该可以下载
为了实现这个应该足以修改 "Deployment Assembly" 所以..
第一次尝试
Project -> Property - > Deployment Assembly - > Source ( java resources folder "/src") -> Deploy Path ( change to root directory )
好的,现在可以了
现在将 "src" 文件夹恢复到 "WEB-INF/classes"(用于服务器端)
创建新的源文件夹 "appletSRC",将其 Deployment Assembly 更改为 "root directory" 但由于某种原因它不起作用
如果在项目 属性 中通过推送
更改 "Order and Export" 部分
"appletSRC" -> UP
可以让 applet 工作,但是 "src"(首先在顶部)将不会部署在 "WEB-INF/classes"。
尽管如此
终极解决方案
Project -> Property - > Java Build Path -> Source -> appletSRC -> Output folder -> Edit
设置为 "webapp" 中的 public 文件夹
声明小程序标签时在 "archive" 我们的 public 文件夹中指定
重要完成 "archive" 使用 /slash,并使用 .class 扩展名进行编码,否则如果多次刷新浏览器将出现错误
让我们创建小程序并将其添加到 jsp 页面, 使用的环境是 STS Spring Tool Suite
新建 -> 动态 Web 项目 -> 名称="WEBtest"
Java 资源 -> src-> new packeg="firstPack.secondPack.mainPack.appletPack" -> new class="MyApplet"
package firstPack.secondPack.mainPack.appletPack;
import java.awt.Color;
import javax.swing.JApplet;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class MyApplet extends JApplet {
@Override
public void init() {
super.init();
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
populateGUI();
}
});
} catch (Exception e) {
System.err.println("createGUI didn't complete successfully");
}
}
void populateGUI(){
JPanel panel=new JPanel();
panel.setBackground( Color.LIGHT_GRAY);
panel.add(new JLabel("QUAQ-QUAQ"));
add(panel);
this.revalidate();
}
}
运行 作为 -> Java 小程序
好的,可以了
web.xml 是自动创建的
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>WEBtest</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
所以...
Web 内容 -> 新 jsp="default"
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h6>DUCK</h6>
<h6>First TRY</h6>
<applet code="firstPack.secondPack.mainPack.appletPack.MyApplet"></applet>
<h6>Second TRY</h6>
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93">
<param name="code"
value="firstPack.secondPack.mainPack.appletPack.MyApplet">
</object>
<h6>Third TRY</h6>
<embed code="firstPack.secondPack.mainPack.appletPack.MyApplet"
type="application/x-java-applet;version=1.6" />
<h6>Fourth TRY</h6>
<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93">
<param name="code"
value="firstPack.secondPack.mainPack.appletPack.MyApplet">
<comment> <embed
code="firstPack.secondPack.mainPack.appletPack.MyApplet"
type="application/x-java-applet;version=1.6">
<noembed> No Java Support. </noembed>
</embed> </comment>
</object>
</body>
</html>
现在将我们的项目拖放到 "Server"
服务器默认为STS:"Privotal tc Server Developer Edition v3.1"
启动服务器
在 http://localhost:8080/WEBtest/
打开浏览器点击window
点击详情
CLASS_NOT_FOUND_EXCEPTION
这里是一些项目设置
因为从 "src" 到 "WEB-INF/classes" 的所有内容,那么我假设小程序中的 "code" 参数是可以的
尽管如此,我也尝试将 java 文件提取到 JAR 中,并添加 "archive" 参数,但是 CLASS_NOT_FOUND_EXCEPTION
我删除了PC上的所有java版本,然后安装了Java SE Development Kit 8 Update 40 (64 bit),还安装了Java 8 Update 40 (64 bit)
之后,我尝试从 docs.oracle.com 打开一些小程序示例但失败了,因此它要求我安装 Java 8 Update 40 而不是 64 位,所以现在我有两个,但是因为小程序示例工作正常我怀疑这是问题所在并保持原样
在谷歌搜索的第二天结束时,我有点绝望,但让它发挥作用很重要
since everything from "src" go to "WEB-INF/classes" then i assume that "code" parameter in applet is OK
只有服务器可以访问 WEB-INF/classes
和 WEB-INF/lib
路径。如果您尝试在小程序上直接获取(使用浏览器地址栏),您可能会看到 'forbidden' 页面。
小程序应该是public内容,在浏览器输入URL应该可以下载
为了实现这个应该足以修改 "Deployment Assembly" 所以..
第一次尝试
Project -> Property - > Deployment Assembly - > Source ( java resources folder "/src") -> Deploy Path ( change to root directory )
好的,现在可以了
现在将 "src" 文件夹恢复到 "WEB-INF/classes"(用于服务器端)
创建新的源文件夹 "appletSRC",将其 Deployment Assembly 更改为 "root directory" 但由于某种原因它不起作用
如果在项目 属性 中通过推送
更改 "Order and Export" 部分"appletSRC" -> UP
可以让 applet 工作,但是 "src"(首先在顶部)将不会部署在 "WEB-INF/classes"。
尽管如此 终极解决方案
Project -> Property - > Java Build Path -> Source -> appletSRC -> Output folder -> Edit
设置为 "webapp" 中的 public 文件夹
声明小程序标签时在 "archive" 我们的 public 文件夹中指定
重要完成 "archive" 使用 /slash,并使用 .class 扩展名进行编码,否则如果多次刷新浏览器将出现错误