繁体   English   中英

部署 java 小程序时遇到很多麻烦

[英]Having a lot of trouble deploying a java applet

我是 Java 的新手。 我只是想构建我的小程序的一个.jar 文件,以便我可以从我的浏览器运行它。 这是我的目录结构的样子:

C:\java\pacman\src

包含所有.java class 文件。

C:\java\pacman\assets

包含大约 4-5 个图像和音频文件。

如果我尝试使用以下代码:

Image someFile=getCodeBase().toString() + "file.png";

getCodeBase()的结果是

file:/C:/java/pacman/bin/

但是以下代码无法加载:

   img=new ImgHelper(getCodeBase().toString() + "assets/");
   ImageIO.read(new File(img.getPath("pacman.png")));

将我的“assets”文件夹移动到“bin”文件夹也没有解决这个问题。 它尝试加载:

file:/C:/java/pacman/bin/assets/pacman.png

说:

Can't read input file!

但是如果我将它粘贴到运行中并按回车键,它给出的 url 会很好地打开:

所以为了避免让自己很头疼,我在我的 ImgHelper class 中注释掉了代码并这样做了:

public ImgHelper(String dir)
{
    //this.imgDir=dir;
    imgDir="C:\\java\\pacman\\assets\\";
}

效果很好。 但我想把它放在 web 服务器上,我不知道我应该如何/做什么才能使所有图像和声音正常工作。 有任何想法吗?

谢谢...

为什么不把它全部放在 JAR 文件中,然后调用 Class.getResourceAsStream?

JAR 文件更好,因为它是单个 HTTP 连接,而不是每个文件一个 HTTP 连接。 使用 Stream 也比使用文件灵活得多。

当文件不在 JAR 中时,getResourceAsStream 也可以工作,它们需要与 class 文件相关。

编辑:

另一件事,如果小程序在服务器上,则 File 方法将不起作用,因为它将尝试从本地计算机(我想,我没有尝试过)而不是从服务器打开文件。 即使它试图创建一个到服务器的文件路径也不起作用。

我同意 tofubeer 关于 JAR 的看法,但如果您想将图像放在服务器上,请参阅此处的 Applet 图像教程。 代码库将是您的小程序在服务器上的任何位置,您也可以将相对于服务器上的图像放置。 使用媒体跟踪器和 Applet.getImage() 方法来检索 url。 从例子:

 my_gif = getImage(getDocumentBase(),"imageExample.gif");

有两种可行的解决方案:

PS:如果您参考Java 教程中的部分来为您的应用程序加载图标,将会很有帮助。 同一部分讨论了TofuBeerJohn提出的许多观点。

编辑:不推荐使用文件 API,因为它最终会读取本地文件系统。 对于互联网上的大多数用户来说,这是不可接受的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM