[英]Importing package compiled as jar: Bad class file, class file contains wrong class and package does not exist error
[英]class file contains wrong class error while accessing jar file
我正在嘗試為我的兩個源代碼 Serial.java 和 DBaccess.java 創建一個 JAR 文件。
我這樣做是作為一個學習練習,這些課程什么都不做,它們是虛擬課程。
操作系統 - Windows 10
JDK-GraalVM
我的源代碼清單。(Serial.java)
public class Serial
{
void open()
{
System.out.println("Serial Port Opened - 0");
}
}
我的源代碼清單。(DBaccess.java)
public class DBaccess
{
String DBname = "MySerialDB";
void write()
{
System.out.println("Data Written to DB - W");
}
void read()
{
System.out.println("Data Read from DB - R");
}
}
我已經使用 javac 將它們編譯為 .class 文件
我創建了一個文件夾
H:\myclass\com\mydomain\util
並手動將類文件復制到 util 目錄
並創建了一個這種格式的 jar 文件 myjar.jar
H:\myclass>H:\graalvm\bin\jar tf myjar.jar
META-INF/
META-INF/MANIFEST.MF
com/
com/mydomain/
com/mydomain/util/
com/mydomain/util/DBaccess.class
com/mydomain/util/Serial.class
我希望我的源代碼 JMainEntry.java 能夠訪問上述 jar 文件 myjar.jar 中的類。
JMainEntry.java
//Main Class of the Program
import com.mydomain.util.*;
public class JMainEntry
{
public static void main (String[] Args)
{
Serial myS = new Serial();
myS.open();
DBaccess myDB = new DBaccess();
myDB.write();
myDB.read();
}
}
當我編譯代碼時
H:\jar-compile>H:\graalvm\bin\javac -cp myjar.jar JMainEntry.java
我收到錯誤
bad class file: myjar.jar(/com/mydomain/util/Serial.class)
class file contains wrong class: Serial
Please remove or make sure it appears in the correct subdirectory of the classpath.
錯誤的類文件:myjar.jar(/com/mydomain/util/Serial.class)
確保您聲明
package com.mydomain.util
在com/mydomain/util
目錄中所有.java
文件的頂部,包括Serial.java
。 為了更好地理解這一點,請閱讀包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.