我正在使用Struts1.3,Jboss4.X版本和jdk1.5开发应用程序
现在作为增强功能,我们计划将AJAX实现到Web应用程序
你能建议我吗?
请澄清我的疑虑
我拿了一个旧的jar文件并对其进行了编辑.现在我有一个包含所有文件的文件夹,我想将它们重新编译回jar文件.我该怎么做呢?
当我在eclipse中使用它时,我的webview就像魅力一样,但只要我将应用程序打包到一个jar文件中就会抛出以下错误:
This page contains the following errors:
error on line 33 at column 26: StartTag: invalid element name
Below is a rendering of the page up to the first error.
Run Code Online (Sandbox Code Playgroud)
这是HTML文件
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="EN">
<head>
<style>
html,body {
height: 99%;
width: 99%;
}
#map {
width: 100%;
height: 100%;
border: 1px solid black;
}
</style>
<script src='http://openlayers.org/api/OpenLayers.js'></script>
</head>
<body>
<div id='map'></div>
<script type="text/javascript">
var map = new OpenLayers.Map("map",{projection:"EPSG:3857"});
var …Run Code Online (Sandbox Code Playgroud) 我已经创建了可执行jar文件(使用Eclipse),有一组图像(.png)文件将被包含在jar中.所以我添加了一个源文件夹,其中包含/images项目中文件夹内的所有图像.代码必须访问这些文件才能使用创建BufferedImageImageIO.read(new File(path);
早些时候,要获得我使用的路径 ClassName.class.getResource(/image/test.png).toURI();
在执行jar时,它抛出错误 URI不是分层的
所以现在我正在使用 ClassName.class.getResourceAsStream(/image/test.png);
但是如何从Inputstream读取ImageIO?我尝试演员如下
InputStreamReader resourceBuff=ClassName.class.getResourceAsStream(/image/test.png);
ImageIO.read((ImageInputStream) new InputStreamReader(resourceBuff));
Run Code Online (Sandbox Code Playgroud)
它抛出错误InputStreamReader无法强制转换为ImageInputStream
我正在尝试使用以下方法查找正在运行的jar文件的位置:
File jarFile = new File(JarPath.class.getProtectionDomain().getCodeSource().getLocation().toURI());
Run Code Online (Sandbox Code Playgroud)
当我在IDE(eclipse)上运行它时,它返回正确的路径.但是当我将jar作为可执行文件运行时,返回的代码源是
rsrc:./
Run Code Online (Sandbox Code Playgroud)
关于如何获得正确路径的想法?
从Eclipse执行时,代码工作正常.我正在使用OpenCV 2.4.11和JavaFX for UI.当我从Eclipse导出可执行Jar并从cmd运行它时,我得到以下异常:
我跟很多张贴在这里的SO和OpenCV论坛(1,2,3,4),但是,没有一个答案似乎帮助我.
我已经将OpenCV jar添加为库,而Native Library链接到/ build/java/x64,如SO答案中所建议的那样.
发生在的System.loadLibrary(Core.Native_Library_Name)例外,我查了Native_Library_Name和OpenCV的版本是一样的一个我在我的项目进口.
public class CustomFrame extends Application{
@Override
public void start(Stage primaryStage){
Group root = new Group();
Canvas canvas = new Canvas(1440, 840);
ImageView imageView = new ImageView();
imageView.setFitHeight(canvas.getHeight());
imageView.setFitWidth(canvas.getWidth());
new FrameController().startCamera(imageView);
root.getChildren().addAll(imageView, canvas);
primaryStage.setScene(new Scene(root));
primaryStage.show();
}
public static void main(String[] args)
{
// load the native OpenCV library
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
launch(args);
}
}
Run Code Online (Sandbox Code Playgroud)
如果有人认为我错过了什么,请告诉我.
尝试使用maven-assembly插件创建包含所有依赖项的胖jar .尝试了很多东西,但最终找不到主类的错误.好像我已经撞墙了,现在已经在这里待了几个小时.
pom.xml 片段:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>foobar</groupId>
<artifactId>foobar</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<outputDirectory>/home/jars/foobar/</outputDirectory>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.foobar.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>...</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
执行Maven命令:
mvn clean compile assembly:single
mvn package assembly:single
mvn clean compile package assembly:single
/home/jars/foobar/foobar-1.0-SNAPSHOT-jar-with-dependencies.jar按预期创建jar
MANIFEST.INF 在 META-INF
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: user
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_131
Main-Class: com.foobar.Main
Run Code Online (Sandbox Code Playgroud)
执行的Java命令:
java -jar foobar-1.0-SNAPSHOT-jar-with-dependencies.jar
java -cp foobar-1.0-SNAPSHOT-jar-with-dependencies.jar …
我可以在没有主类的情况下以这种方式执行 jar 文件吗:
java -jar my_jar.jar -getX arg1 arg2 ...
Run Code Online (Sandbox Code Playgroud)
知道我有一个名为 getX 的方法,它以 arg1 arg2 ... 作为参数。任何的想法?
我知道 eclipse 会生成一个可运行的 jar 文件,其中包含提取并包含在 jar 文件中的所有库 .jar 文件。从命令提示符手动创建 jar 文件时,我如何执行类似的操作。我是否需要将所有 lib jar 解压缩到 classes 文件夹中?
目前我正在使用 -
jar cvfm example.jar manifest.txt -C Classes/ .
Run Code Online (Sandbox Code Playgroud)
这会创建一个包含所有类文件的 jar 文件,我需要将所有库 jar 放在与 example.jar 存在的同一文件夹中。
我意识到这似乎是一个完全愚蠢的问题,而且这个问题是“文字墙”,但我觉得我已经超出了我的深度,需要一些指导。我已经阅读了有关此主题的几个问题,但似乎仍然找不到解决这一特定情况的问题。(请参考本文末尾的更新)
我们公司有一个用 Java 构建的应用程序,由几年前去世的开发人员作为可执行 JAR 包发布。从那时起,几乎不需要查看该代码,更不用说进行任何更改了。这真的很好,因为我在 VB.NET (Visual Studio) 中进行编程,虽然我可以阅读和理解 Java 代码,但我并不精通实际编写/调试该代码。
然而,最近出现的一个问题迫使我尝试查看这个 Java 代码,因为组织和数据结构发生了一些内部变化。我查看了他的“ src\”目录,找到了他的原始代码的旧版本,但无法在任何地方找到最新版本。我发现一些代码使我能够将当前正在使用的 JAR 提取到 CodeProject ( JarsVB.java ) 上的本地目录,因此当我试图找出正在执行的查询时,我能够查看一些文件用于一些随机操作。我不知道原始开发人员使用什么工具来创建项目/JAR,所以我安装了IntelliJ IDEA Community Edition 2018作为 IDE,到目前为止,它对我来说只是简单地查看代码,所以我可以了解一点它在做什么。
不幸的是,现在我需要更改 Java 代码并更新 JAR,而这就是我似乎无法弄清楚我需要做什么的地方。我有来自“解压缩”JAR 的本地代码副本,其中包含所有.java和.class文件(以及所有其他资源),但我不确定如何从该副本修改代码并重新编译可执行 JAR。
所以,我的目标如下:
.java文件。(我相信我可以很好地理解语法来完成这部分。)我一直在查看 IntelliJ 的文档,试图找出如何实现这一切,但我觉得我错过了一些东西。我将“项目结构”设置设置为指向特定文件夹,但我似乎无法让它在我指定的路径中实际构建任何内容。
我进入其中一个.java文件并进行/保存了一个小更改以进行测试,然后转到“构建”菜单并尝试了所有可用的构建选项:“构建项目”、“构建模块”和“重建项目”。每次,事件日志都会显示“所有文件都是最新的”(即使我更改了一个文件),因此我转到输出目录查看它构建的内容,但该文件夹是空的。
我查看了 IntelliJ 文档 将模块打包成 JAR …