是否有一种简单的方法可以将我自己执行的JAR中的资源作为InputStream加载而无需访问ClassLoader?问题是我的java.policy限制访问ClassLoader(这不能更改).我想加载一些我可以放在我的JAR中的xml配置,但不能在JAR之外.
谢谢你的回答.实际上我的问题不在于我自己的ClassLoader.我正在使用XStream,它希望创建一些类加载器和应用程序崩溃:
java.security.AccessControlException:java.security.AccessController.checkPermission(AccessControlContext.java:323)的java.security.AccessController.checkPermission(AccessController.java:546)访问被拒绝(java.lang.RuntimePermission createClassLoader)java.lang .SecurityManager.checkPermission(SecurityManager.java:532)位于java.lang.ClassLlass的java.lang.SecurityManager.checkCreateClassLoader(SecurityManager.java:594).(ClassLoader.java:226)com.thoughtworks.xstream.core.util .CompositeClassLoader.(CompositeClassLoader.java:50)
我有一个存储在java jar文件中的UTF-8文件.我试图使用getResourceAsStream()方法读取它,但函数返回的输入流读取器使用默认编码,即Windows下的ANSI编码.
如何从jar中读取UTF-8文本文件?
我的java程序的JAR文件中有一个.csv数据库文件.在我打包之前,该程序在NetBeans IDE中运行良好,但是一旦我这样做,它就会拒绝相信文件在其中,即使我打印出它正在查看的路径并解压缩JAR以确保我告诉它寻找合适的地方.我如何让Java看到这个?
try
{
String path = Main.class.getResource("/items.csv").getPath();
db = new java.io.File(path);
loadValues(db);
}
catch (java.io.FileNotFoundException ex1)
{
System.out.println("Could not find database file (" + ui.db + ").");
}
Run Code Online (Sandbox Code Playgroud) 我试图了解jar和jar如何在Java中工作.所以为了做到这一点,我创建了一个简单的测试JAR,并尝试使用该jar中包含的类.很简单,但它给我的错误,如"找不到课".这是设置:
1)我有一个名为MyHelloWorld.java的文件,它将打包在一个JAR中:
package com.mytest;
public class MyHelloWorld {
public String getHello() {
return "Hello";
}
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
Run Code Online (Sandbox Code Playgroud)
2)我有另一个名为'HelloHello.java'的文件,该文件使用getHello()com.mytest.MyHelloWorld中的函数
import com.mytest.*;
public class HelloHello {
public static void main (String[] args) {
MyHelloWorld hello = new MyHelloWorld();
System.out.println(hello.getHello());
}
}
Run Code Online (Sandbox Code Playgroud)
3)要将MyHelloWorld类打包到JAR中,我com/mytest在当前目录中创建了文件夹,并将MyHelloWorld.java移动到该文件夹
4)我在该文件夹中编译了MyHelloWorld.java javac MyHelloWorld.java
5)我jar -cf myhello.jar ./com/mytest/*.class从根文件夹运行以创建JAR文件(如http://www.javacoffeebreak.com/faq/faq0028.html中所述)
6)我将HelloHello.java和myhello.jar复制到一个没有其他内容的新文件夹中,以测试此设置
7)javac -cp ./*.jar HelloHello.java[成功]
8)java -cp ./*.jar HelloHello[FAILS](我也尝试过`java HelloWorld',它也失败了,带有不同的错误信息)
最后一条语句失败并显示以下消息:
$java -cp …Run Code Online (Sandbox Code Playgroud) 我import javax.swing.JOptionPane在我的项目中使用,我需要rt.jar,因为rt.jar包含javax.swing.但是rt.jar是一个运行时jar,我无法添加它,因为在编译我的项目时添加它会给我一个dalvik错误.
那么有没有其他方法可以解决这个问题或javax.swing从任何其他jar获取?
我是ANT的新手,并尝试使用简单的ANT脚本来创建.war我的项目文件.
这是我的脚本
当我运行此脚本时,一切正常,但.jar文件中存在WebContent/WEB-INF/lib的.war文件被复制两次.
<?xml version="1.0" ?>
<project name="AutoComplete">
<path id="compile.classpath">
<fileset dir="WebContent/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="init">
<mkdir dir="build/classes"/>
</target>
<target name="compile" depends="init" >
<javac includeantruntime="false" destdir="build/classes" debug="true" srcdir="src" >
<classpath refid="compile.classpath"/>
</javac>
</target>
<target name="build.war" depends="compile">
<war destfile="AutoComplete.war" webxml="WebContent/WEB-INF/web.xml">
<fileset dir="WebContent"/>
<lib dir="WebContent/WEB-INF/lib"/>
<classes dir="build/classes"/>
</war>
</target>
<target name="clean">
<delete dir="build" />
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
如果我犯了任何错误,请告诉我.
谢谢.
我有一个简单的Hello.java类,我想把它放在一个网站上.
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Run Code Online (Sandbox Code Playgroud)
我试着这样做
jar cf Hello.jar Hello.java
Run Code Online (Sandbox Code Playgroud)
然后在网站上尝试让它运行我放
<h2> Hello Test </h2>
<APPLET
CODE="Hello.class"
WIDTH="50%" HEIGHT="50"
ARCHIVE = "Hello.jar"
> This example uses a Hello.jar applet.
</APPLET>
Run Code Online (Sandbox Code Playgroud)
不用说它不起作用.
我创建了一个新的应用程序.现在我想创建一个具有相同外观和功能的新应用程序,除了与服务器通信的特定文本和目标URL.
如何在不进行太多更改的情况下重用整个应用程序?我尝试从现有的应用程序项目生成jar文件并将其放入我的新应用程序项目中.在清单文件中,如何告诉新应用程序从重用的应用程序运行存储在生成的jar文件中的活动?
我正在尝试将colt.jar文件用于Tomcat Server中的项目.我试过把它放到WEB-INF/lib /,/ lib中,甚至也放在MyProject/lib /中.他们都没有工作.以前,我使用过像Jama-1.0.2.jar或servlet-api.jar这样的jar文件,它们工作得很好.我试图在我的本地机器上使用它导入jar文件与Eclipse,它工作正常.但不知道为什么不在服务器端工作.
有什么建议吗?
ADDED LATER ::::我已经添加了类路径,然后在编译期间它没有给我任何错误.但最终在运行时,方法(包含在该类中)不起作用.它没有给出任何错误.它只是不继续执行.需要帮忙 :(
资源与文件系统不同步
这是在eclipse IDE中创建jar时抛出的错误...
这是什么意思?以及如何纠正它?...