我有以下代码:
{
"data": {
"not interesting": ["milk", "yogurt", "dirt"],
"interesting": [{ "A": "moonlanding", "B": "1956", "C": 100000, "D": "meh" }]
}
}
当我把它变成一个类文件时,它工作正常但是当我把它变成一个jar文件时,我得到以下错误:
线程“AWT-EventQueue-0”中的异常java.lang.NoClassDegFoundError:KaraokeMachine $ 1
有谁知道如何更改代码,以便swingworker在jar文件中工作?
答案 0 :(得分:3)
该异常意味着您的类路径中缺少一些 anoymous内部类。所以答案很可能是:当你"捆绑"将您的类放入该类文件中,您忘记了这些类可以命名为A$1.class
。
KaraokeMachine.class是"主要"上课,但是在这里:
SwingWorker<Void, String> worker = new SwingWorker<Void, String>() {
你正在创建一个匿名的内部类 - 进入KaraokeMachine $ 1.class。要运行您的应用程序,您需要所有这些类文件。
换句话说:JAR文件的内容不完整。仔细了解构建该JAR文件的方式。例如,请参阅here。