2013-03-17 65 views
1

讓我知道如果您需要比此更多的代碼!無法從Java項目中訪問終端中的.png文件

我可以在Eclipse中很好地運行程序。但是,一旦我訪問這些文件並在終端中運行Java Frame,它只會顯示我的遊戲的一部分。它不顯示任何.png文件。

這裏是我的主要方法:

import javax.swing.*; 
import java.awt.*; 

public class Frame extends JFrame { 
public static String title = "Tower Defense Alpha"; 
public static Dimension size = new Dimension(700, 550); 


public Frame() { 
    setTitle(title); 
    setSize(size); 
    setResizable(false); 
    setLocationRelativeTo(null); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    init(); 

} 

public void init(){ 

    setLayout(new GridLayout(1,1,0,0)); 

    Screen screen = new Screen(this); 
    add(screen); 

    setVisible(true); 

} 

public static void main(String args[]){ 
    Frame frame = new Frame(); 


} 

}

這裏是我如何訪問我在Eclipse中,文件,這似乎並沒有在終端工作:

for (int i=0; i<tileset_ground.length; i++) { 
     tileset_ground[i] = new ImageIcon("res/tileset_ground.png").getImage(); 
     tileset_ground[i] = createImage(new FilteredImageSource(tileset_ground[i].getSource(), 
             new CropImageFilter(0, 26*i, 26, 26))); 
    } 
+0

命令你與運行的程序發佈您的計劃終端?哪個是您啓動它的目錄/文件夾? – 2013-03-18 01:39:18

+0

我使用的命令是「javac * .java」,然後是「java Frame」,我的文件位於名爲Client的文件夾中,並且在客戶端內的文件夾中名爲「src」,因此它位於「Client \ src」目錄中 – Rashesh 2013-03-18 02:30:39

+0

對不起我的意思是.png文件位於名爲「Client \ res」的文件夾中,Frame.java文件位於「Client \ src」中 – Rashesh 2013-03-18 02:37:18

回答

0

看來問題是在終端上,該程序正在從Client/src folder運行,因此它試圖尋找Client/src/res上的圖像,該圖像不存在。

Eclipse在另一方面,保持單獨的文件夾,並使用項目文件夾作爲其根文件夾啓動程序:

Client 
| 
+-- bin (classes compiled by Eclipse) 
| 
+-- res (images) 
| 
+-- src (source code) 

通過運行javac *.java而在src文件夾正在創建的編譯副本src文件夾中的課程。

在您需要返回到客戶端文件夾,並從那裏與java -classpath bin Frame

+0

謝謝!有效!非常感謝。無論如何,我可以創建一個Driver類來爲我做代碼嗎?我想只能進入Client文件夾並鍵入「java driver」並讓它運行該代碼。 – Rashesh 2013-03-18 02:47:11

+0

要做到這一點,你需要創建一個啓動腳本從命令行運行你的程序,請參閱此鏈接:http://stackoverflow.com/a/9660103/483566 – 2013-03-18 03:11:37

+0

有沒有一種方法讓我移動文件,所以我可以只使用「Java框架」,並有它的工作? – Rashesh 2013-03-18 04:28:47