标签: jar

是否可以在机器上运行可执行jar文件而不先安装java?

我可以在我的可执行jar文件中包含rt.jar并双击运行它而不先在机器上安装java吗?我希望在我的罐子里使用那个rt.jar来启动它,可能吗?如果没有,还有其他方式吗?

java jar

1
推荐指数
1
解决办法
2921
查看次数

究竟是什么.jar文件,我怎么创建一个?

究竟是什么.jar文件,我怎么创建一个?

jar

1
推荐指数
1
解决办法
494
查看次数

为什么Maven目标"包"包含jar中的资源,但目标"jar:jar"不包含?

当我使用Maven目标"包"打包我的项目时,也包括资源.它们最初位于"src/main/resources"目录中.因为我想创建一个可执行jar并将类路径添加到清单中,所以我使用的是maven-jar-plugin.

我把它配置为以下喜欢:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <mainClass>at.program.Main</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

为什么用"jar:jar"创建的jar文件也不包括我的资源.就我而言,它应该使用与"包"目标相同的目录(在我的情况下继承自Maven Super POM).

java maven-2 jar maven-plugin

1
推荐指数
1
解决办法
5628
查看次数

Java - 找不到主类?

我遇到了Java错误.双击我编译的项目Jar文件以运行它时,我得到了这个:

Could not find the main class: testPackage.testFrame. Program will exit.
Run Code Online (Sandbox Code Playgroud)

但是,我的主类是在项目属性中定义的.此外,当我直接从NetBeans运行项目时,一切正常.

我正在使用ip2c.jar第三方库来确定来自IP地址的国家/地区.如果我评论使用ip2c.jar文件的类,我不会收到错误.

第三方库如何阻止JVM查找我的主类?

java program-entry-point jar find

1
推荐指数
1
解决办法
1万
查看次数

在使用Ant编译的文件中找不到主类

我在Eclipse中编译并运行我的程序,一切正常,但是当我用Ant打包并运行它时,我收到此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/supercsv/io/ICsvB
eanReader
Caused by: java.lang.ClassNotFoundException: org.supercsv.io.ICsvBeanReader
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: jab.jm.main.Test. Program will exit.
Run Code Online (Sandbox Code Playgroud)

请注意,这是运行时错误,而不是Ant 的编译器错误.

我在过去用0个问题构建了这个项目,现在当我向lib文件夹中添加第二个包时,它突然出现了吗?

这是构建文件供参考:

<?xml version="1.0" ?>

<project name="ServerJar" default="dist" basedir=".">
 <description>
  Builds client files into .jar
 </description>
 <!-- [build variables] -->
 <property name="src" location="src" />
 <property name="build" location="build" />
 <property name="dist" location="dist" /> …
Run Code Online (Sandbox Code Playgroud)

java eclipse csv ant jar

1
推荐指数
1
解决办法
1万
查看次数

可执行jar背后的魔力?

Jar是一种使用java的便捷方式,因为每个类都可以包含在一个jar中.

我使用如下的antlr,并使用-jar选项调用jar.

java -jar $ANTLRDIR/antlr-3.2.jar ANTLR_CODE.g

而且,这是调用clojure的命令.而不是使用-jar选项调用clojure.jar.它位于-cp中,并调用一些"函数".

java -cp $CLOJURE_JAR:$CLASSPATH clojure.lang.Script CLOJURE_CODE.clj

问题

  • 这种方法背后的魔力是什么?什么是'clojure.lang.Script'?
  • 可以用同样的方式调用antlr吗?如果是这样的话应该使用什么名字(比如clojure.lang.Script)?
  • 用其他语言制作的jar文件怎么样:clojure/scala?我怎么知道应该叫的名字?
  • 这两种方法有什么区别?优点和缺点?

java jar

1
推荐指数
1
解决办法
280
查看次数

Windows Registery:如何将Java应用程序添加到启动列表中?

我添加了一个值:

HKLM\Software\Microsoft\Windows\CurrentVersion\Run
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

Value Name: LDE
Value Data: "java -jar C:\LDE\lde.jar"
Run Code Online (Sandbox Code Playgroud)

真的用引号(因为所有其他地方也有引号).添加后,我重新启动了计算机,但它没有自动启动.

将我的jar包装在exe帮助中吗?

我正在运行Windows 7.

有帮助吗?
提前致谢.


更新:

当我删除引号时,它可以工作.但现在还有一个终端,我不需要......

java registry jar startup

1
推荐指数
1
解决办法
6485
查看次数

如何将API的依赖关系与使用它的主程序隔离开来?

我有一个系统,我通过一个定义良好的访问点创建一个插件.但是,有问题的插件使用了一些框架也使用但不同版本的jar.

代码的结构是一种方式,在框架中集成的代码(扩展插件扩展点)和执行实际工作的代码非常好地解耦(基本上归结为少于10个类的API).然而,在这几个类背后隐藏着一个相当大而复杂的系统(60+ jar依赖)

问题如下:

如何确保API类实例化的任何内容都是使用独立的jar文件私有库完成的?

换句话说,如何隔离插件以使其与自己的私有库一起运行而不会干扰主应用程序的库?

----编辑----到目前为止,只有两种方法可以实现,就是嵌入一个像OSGi这样的框架,或者提供我自己的类加载器实现.后者可以完成,并且在网上提出了许多变体,虽然我发现什么都不会让我对手头系统所需的稳定性充满信心.

这让我们回到OSGi,我希望有一个更轻量级的解决方案,但也许一旦我学会了技术,它将证明可以做我想要的而不需要太多的努力.

java plugins jar classloader dependency-management

1
推荐指数
1
解决办法
1176
查看次数

Web Start中的jar文件的版本属性

在JNLP文件中,是与任何元数据(例如清单)相关的jar资源的版本属性,还是由创建JNLP文件的用户任意设置?

jnlp jar version java-web-start

1
推荐指数
1
解决办法
2195
查看次数

在Java应用程序中存储首选项的位置?

我只需要一个解决方案来检索存储满足以下需求的桌面应用程序设置(例如sqlite数据库)的路径:

  • 跨平台
  • 从jar和"正常"调用工作

我花了很多时间谷歌搜索和试验通过X.class.getProtectionDomain().getCodeSource().getLocation()java.util.pref.Preferences 类获取代码库路径,但返回值有时会产生不同的结果,返回null或只是"/"作为路径.

"跨平台"很难定义.称为"每个平台的最佳实践"的解决方案并不容易实现.在用户特定数据和共享数据之间做出区分是明智的.

java settings cross-platform jar preferences

1
推荐指数
1
解决办法
2631
查看次数