2017-01-02 93 views
0

我知道這是一個常見問題。到目前爲止,我嘗試了所有的解決方案,但沒有任何工作(或者我做的不正確)。導入類不工作。 「無法編譯JSP的類」

this is the error

here is my file hierarchy

.java文件都在一個叫做business_logic

這裏包是代碼:

<%@ page import="business_logic.*" %> 
<% 
LicenseManagement.ini(); 
String F_name = LicenseManagement.myUser.getName(); 
%> 
<nav class="nav"> 

<h3>Menue</h3> 
<p><b>You are logged in as:</b></p> 
<p>F_name, L_name</p> 
<a href='logout.jsp'>Log out</a> 
<br> 
<br> 
<p><b>User Menue</b></p> 
<ul> 

    <li><a href="dashboard.jsp">Dashboard</a></li> 
    <li><a href="mylicenses.jsp">My Licenses</a></li> 
    <li><a href="requestlicense.jsp">Request License</a></li> 

</ul> 

<% 
if (!(session.getAttribute("admin") == null) ||  (session.getAttribute("admin") == "")) { 
%> 
<br> 
<p><b>Admin Menue</b></p> 
<ul> 
    <li><a href="newprogram.jsp">New Program</a></li> 
    <li><a href="newlicense.jsp">New License</a></li> 
</ul> 

什麼錯?

回答

0

從文件層次結構的屏幕快照判斷,您已將導入文件的源代碼包含在classes樹中。您應該包含.class文件。

JSP編譯器假定所有導入的類都已經被編譯。

+0

感謝您的回答。 Iam使用IntelliJ,我找不到.class文件。我知道我可以通過命令行編譯它們。但是,當我每次更新我的代碼時,是否真的需要這樣做? – Loading

0

您保留.java文件的位置看起來不正確。

通常,Java源文件保存在WEB-INF文件夾之外。根據您的類的包層次結構,只有已編譯的.class文件被放置在WEB-INF/classes文件夾中。

將已編譯的類放在WEB-INF/classes中,您的錯誤應該消失。

更新

我在網上找到了這個截圖。看看你是否可以通過比較你的項目結構來找出路徑。

Image

希望這有助於!

+0

如何將.class文件自動放入正確的文件夾?現在我需要通過命令行編譯它們,並將該類移動到正確的文件夾中。 我想有一個更好的方法來做到這一點。 Iam使用intellij – Loading

+0

我沒有使用IntelliJ。在Eclipse中,Web項目爲Java源文件創建一個用於JSP的'WebContent' fodler和用於WebContent外部的'src'文件夾。這些'srs'中的Java文件被編譯,並且這些類文件被Eclipse自動移動到'WEB-INF/classes'文件夾中。我不確定IntelliJ文件夾結構的層次結構。 – anacron