无法从Java项目中访问终端中的.png文件

问题描述:

让我知道如果您需要比此更多的代码!无法从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

看来问题是在终端上,该程序正在从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