标签: jar

从另一个java程序执行不同的Jar文件

作为我的程序的一部分,我有一个连接管理器,它从客户端接收连接,然后给客户端一个端口号和一个用于连接的密码.在这一点上,管理器需要调用我必须处理此连接的jar文件,并使用一些参数,并继续,(忽略其他程序正在做的事情).

我的问题是执行jar文件.我查找了类似的问题,并尝试使用流程构建器并使用Runtime.exec.我移动了jar文件,并检查了它的权限.它只是拒绝从另一个java程序工作,但从命令行完美工作.这是我的一个测试运行的示例.

package test;

import java.io.*;

public class Main {
    public static void main (String [] args ) throws IOException, ClassNotFoundException, InterruptedException {
        Process p = Runtime.getRuntime().exec("java -jar \'/home/ryan/CytoscapeInterface.jar" +
        "\' arg1 arg2");
        //Process builder way
        /*ProcessBuilder pb = new ProcessBuilder("/home/ryan/CytoscapeInterface.jar",
           "-jar", "CytoscapeInterface.jar", "agr1", "arg2");
        pb.redirectErrorStream();
        Process p = pb.start();*/
        BufferedInputStream bis = new BufferedInputStream(p.getErrorStream());
        synchronized (p) { p.waitFor(); }
        System.out.println(p.exitValue());//its 1 for runtime, 2 for process Builder
        int read = bis.available();
        //had a loop, found out I just needed …
Run Code Online (Sandbox Code Playgroud)

java jar

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

罐子包装和分配

我们按照预期在包中布置了一些通用代码.其中一些包是 handler, processor, util, registration等等

这里的常见意味着这些将在多个彼此无关的Java/Java EE项目中重复使用.

问题在于包装的分发.

每个包都包含不同的功能单元,但放在一起,它们是API.

我们应该将个别功能捆绑到JAR中,最后说8到10个罐子.例如:处理程序jar,注册jar等

要么

我们应该采用最小公分母方法,即5个强制包的基础构建到一个罐子里.任何其他人都需要该罐作为基础,并可以选择附加罐.

我们的构建系统是Ant + Ivy,这些依赖项将在编译和构建时解决.

java jar java-ee

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

使用Apache Ivy的自定义存储库,找不到解析器

似乎Apache ivy仅从http://mvnrepository.com/和其他几个地方下载工件,但所有的jar都在那里过时了.

所以我想为Ivy添加自定义存储库.我正在使用存储库Ivy RoundUp:http://code.google.com/p/ivyroundup/

这是我的配置,但收到错误:

build.xml文件:

<target name="update" depends="init-ivy" description="Download project dependencies">
    <!-- edited for brevity -->
    <ivy:settings file="ivysettings.xml" />
    <ivy:retrieve pattern="war/WEB-INF/lib/[artifact]-[revision].[ext]" />
    <!-- edited for brevity -->
</target>
Run Code Online (Sandbox Code Playgroud)

ivy.xml:

<ivy-module version="2.0">
    <info organisation="org.apache" module="hello-ivy"/>
    <dependencies>
        <dependency org="org.springframework" name="spring" rev="3.0.6" conf="default->master"/>

    </dependencies>
</ivy-module>
Run Code Online (Sandbox Code Playgroud)

ivysettings.xml:

<ivysettings>
    <resolvers>
        <packager name="roundup" buildRoot="${user.home}/.ivy2/packager/build" resourceCache="${user.home}/.ivy2/packager/cache">
            <ivy pattern="http://ivyroundup.googlecode.com/svn/trunk/repo/modules/[organisation]/[module]/[revision]/ivy.xml"/>
            <artifact pattern="http://ivyroundup.googlecode.com/svn/trunk/repo/modules/[organisation]/[module]/[revision]/packager.xml"/>
        </packager>
    </resolvers>
</ivysettings>
Run Code Online (Sandbox Code Playgroud)

错误:

Buildfile: C:\Users\Jansu\workspace\HibernateSpring\build.xml
build:
deploywar:
      [war] Building war: C:\Users\Jansu\workspace\HibernateSpring\hibernate.war
     [copy] Copying 1 file to C:\apache-tomcat-7.0.20\webapps
download-ivy:
      [get] Getting: …
Run Code Online (Sandbox Code Playgroud)

java ant jar build ivy

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

运行时异常不终止程序

根据我的一点点java知识程序应该在它抛出运行时异常后终止.

但是在我的应用程序抛出运行时异常后它没有终止,并且因为我在linux上执行它我必须使用ctrl + c来终止它,否则它只是不会终止.

我在windows sytem上创建jar并将其复制粘贴到linux中.

我也在我的应用程序中启用了日志记录.

更新: 我没有捕获任何异常没有使用多线程.

java linux jar try-catch runtimeexception

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

如何在不包含源代码的情况下将Java Project导出为外部Jar

所以我制作了一些提供一些特定API功能的java文件.我想将它们导出为Jar文件,可以在类路径中导入,以便使用此文件的人可以使用它的功能.

现在,当我通过Eclipse导出它时,它包含jar中的所有源文件,任何人都可以复制我的代码.有什么方法可以隐藏源代码,以便可以使用API​​功能而无需查看这些java文件的实际源代码?

请建议是否可行.

谢谢,

java eclipse jar

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

统一J2ME应用程序中的.jar和.jad文件

目前,我正在使用LWUIT库为移动设备开发J2ME应用程序.我的项目的构建结果包括.jar文件和.jad文件.我想知道,有没有办法将这些文件统一到一个.jar文件中?为什么应该在单个(和简单的).jad文件中提及我的应用程序的某些属性而不是jar文件的METAINF/manifest.mf文件?这确实使部署过程更加困难.

java mobile jar manifest.mf java-me

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

查找Jar文件的自我位置

有没有什么方法可以通过编程方式找到jar分叉的当前位置?假设我正在执行Jar D:/Jars/myjar.jar,那么我可以从代码中获取该路径吗?


@AljoshaBre我试过这个

try {
        File file = new File(getClass().getProtectionDomain().getCodeSource().getLocation().toURI().getPath());
        System.out.println(file.getAbsolutePath());
    } catch (Exception e1) {

        e1.printStackTrace();
    } 
Run Code Online (Sandbox Code Playgroud)

投掷NPE.:(

System.out.println(getClass().getProtectionDomain().getCodeSource().getLocation().getPath());
Run Code Online (Sandbox Code Playgroud)

仅显示client.jar.不是绝对的道路.它在一个罐子里面.

java jar path

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

在WAR中打包JAR还是放在classpath上?

我有一个Spring MVC应用程序,它有一个公共前端WAR,一个管理员前端WAR和一个共享服务JAR.我的两个前端项目依赖于各种Spring JAR,我的共享服务JAR也是如此.他们需要的Spring JAR列表相似但不同.此外,两个基于WAR的应用程序依赖于共享服务JAR.

在捆绑JAR或设置类路径方面,您将如何部署这组应用程序/ JAR?您是否将所有适当的Spring JAR和服务JAR包含在两个WAR文件中?你会把任何和所有共享的JAR放到类路径上吗?如果是这样,你会通过命令行参数将它们放在Tomcat(我正在使用的应用服务器)的类路径上,或者你只是将类路径添加到系统类路径中?您是否会因开发和生产方案而有所不同?

作为参考,我正在使用Maven,它已将所有内容打包到WAR文件中,但我不确定这是否是最佳实践方法.

更新:作为参考,我发现这个页面非常有用:http://www.mulesoft.com/tomcat-classpath

谢谢,

詹姆士.

tomcat jar war classpath maven

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

如何从jar文件加载类并将其存储在arraylist中

我试图从exchanges.jar文件加载类文件(没有实现任何公共接口)并将其存储在arraylist中以前,我从目录中加载了.class文件(实现了一个公共接口)

package edu.uh.cs.assign2;

import java.io.File;
import java.util.ArrayList;

import edu.uh.cs.iexchangeservices.IExchange;

public class ExchangeManager {
    private ArrayList<IExchange> exchangeList = new ArrayList<IExchange>();

    public ArrayList<IExchange> findClasses() throws Exception {

        File classDirectoryPath = new File(Thread.currentThread()
                .getContextClassLoader()
                .getResource("exchangeservices".replace('.', '/')).getFile());

        return loadExchangeClasses(classDirectoryPath);
    }

    public ArrayList<IExchange> loadExchangeClasses(File classDirectoryPath)
            throws Exception {

        if (!classDirectoryPath.exists())
            throw new LoadExchangesException("path not found");

        String[] exchangeClasses = classDirectoryPath.list();

        for (String exchangeClass : exchangeClasses) {

            if (exchangeClass.endsWith(".class")) {
                Object object = (IExchange) Class.forName(
                        "exchangeservices"
                                + '.'
                                + exchangeClass.substring(0,
                                        exchangeClass.length() - 6))
                        .newInstance();

                if (object instanceof …
Run Code Online (Sandbox Code Playgroud)

java jar

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

Eclipse JAR导出无法正常工作

我刚刚开始学习Java(大约一周前),最近几天我用Slick2D构建了一个小游戏.无论如何,每当我从eclipse导出JAR并使用'java blahblahblah.jar'运行它时,我会收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: /Users/andy/Desktop/game/jar
Caused by: java.lang.ClassNotFoundException: .Users.andy.Desktop.game.jar
Run Code Online (Sandbox Code Playgroud)

一切都被勾选出来,LWJGL和Slick2D罐子都在lib文件夹中,我尝试过FatJar.我看过互联网,似乎无法找到任何有效的解决方案.

有帮助吗?

java eclipse jar

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

标签 统计

jar ×10

java ×9

eclipse ×2

ant ×1

build ×1

classpath ×1

ivy ×1

java-ee ×1

java-me ×1

linux ×1

manifest.mf ×1

maven ×1

mobile ×1

path ×1

runtimeexception ×1

tomcat ×1

try-catch ×1

war ×1