小编Dav*_*elt的帖子

使用命令行从Java调用git

当试图调用git命令时,在Java的正常命令行中正确执行,我得到一个奇怪的结果:它什么都不输出.

例如,如果我尝试运行此:

public class GitTest {
    public static void main(String args[]) throws IOException{
        String command = "git clone http://git-wip-us.apache.org/repos/asf/accumulo.git";
        Process p = Runtime.getRuntime().exec(command);
        BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line; 
        String text = command + "\n";
        System.out.println(text);
        while ((line = input.readLine()) != null) {
            text += line;
            System.out.println("Line: " + line);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我没有输出(除了之前打印的命令).好像git还在下载一些东西,但是并没有告诉我.也许它会在完成之后输出所有内容(所以正常的git调用输出,准备好了多少,并且每次更改此行 - 可能因为这样,BufferedReader无法读取已完成的行,因此无法输出它).

是否有任何解决方法,让这个工作?

java git

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

从uberjar使用Jersey和Jackson时不支持的媒体类型

我目前正面临着泽西和杰克逊的问题,我无法找到解决方案:当我试图从JSON序列化一个POJO作为Jersey-Endpoint中的POST参数时,如果我调用它会返回错误来自一个uberjar.如果我在从eclipse启动main方法后使用相同的wget-call,一切正常,我得到了预期的答案.我在使用jersey和post-parameter应用程序类型时搜索了其他有问题的人,比如错误415不支持的媒体类型:POST如果JSON没有达到REST,但是如果XMLJAX-RS会这样做:如何自动序列化集合时返回一个Response对象?,但主要的错误是他们没有在通话中指定标题或使用错误的@ Consumes-tags,我没有.根据我的研究,没有人有类似的问题,当服务器从eclipse启动时调用工作,但是当服务器从外部启动时没有工作.

启动服务器的类如下:

public class ServerStarter {
    public static final String BASE_URI = "http://localhost:8282/test/";

    public static void main(String[] args) throws IOException {
        final ResourceConfig rc = new ResourceConfig().packages("starter");
        HttpServer server = GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), rc);
        System.out.println(String.format("Drücke Enter um Server zu beenden.", BASE_URI));
        System.in.read();
        server.stop();
    }
}
Run Code Online (Sandbox Code Playgroud)

而Endpoint看起来像这样:

@Path("testme")
public class Endpoint {

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public String testMe(Parameters ep) {
        return ep.toString();
    }
}
Run Code Online (Sandbox Code Playgroud)

而Parameters-class应该是POJO,如下所示:

public class Parameters {
    private int x;

    public int getX() {
        return x;
    } …
Run Code Online (Sandbox Code Playgroud)

java eclipse rest json maven

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

将SIGAR与maven一起使用

我目前正在尝试在一个maven-build中使用Sigar,它每次都会说:

"org.hyperic.sigar.SigarException:java.library.path中没有libsigar-x86-linux.so"

我已经使用mvn install将Sigar安装到maven:install-file -DgroupId = org.hyperic -DartifactId = sigar -Dversion = 1.6.4 -Dpackaging = jar -Dfile = sigar.jar(其中sigar.jar只是一个jar org文件夹中的文件,以及与lib文件夹中的东西的maven依赖关系),但是它找不到.so文件.

我试图找到答案,大多数人说应该解压缩文件,如在maven中解压缩依赖.解压缩(在通过install:install-file安装其他内容之后)确实可以正常工作,但该文件根本不包含在路径中.

然后我试图在构建路径中找到包含文件的东西,所以我做了类似这样的事情:使用本机库进行Surefire JUnit测试(我想在测试中使用sigar),但这也没有改变任何东西.我已经尝试了许多不同的文件夹,甚至添加文件本身而不是它在库路径中的文件夹,但即便如此:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <forkMode>once</forkMode>
    <argLine>-Djava.library.path=${project.build.directory}/lib/libsigar-x86-linux.so</argLine>
  </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

不起作用,但文件显然在那里.我正在使用maven 2.2.1.

有没有人暗示如何在这种情况下使sigar工作?

在此先感谢DaGeRe

java maven sigar

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

JavaFX的自动完成功能无法在eclipse luna中运行

在尝试JavaFX时,我目前遇到自动完成问题.我有一个标准的maven项目,Java 8设置为源和目标:

         <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

这是正确识别的,我可以使用Stream API的自动完成等.

一些线程,例如Eclipse Swing Project中的如何使用JavaFX,表明jfxrt是使用JavaFX所必需的.Eclipse在/ usr/lib/jvm/java-8-oracle /下使用正确的JVM,它在/ usr/lib/jvm/java-8-oracle/jre/lib/ext/jfxrt中找到了正确的jfxrt.jar.罐.如果我手动打开(在包资源管理器中)JRE系统库 - > jfxrt.jar - > javafx.embed.swing我看到JFXPanel正在那里铺设.

然而,当我在输入后点击Strg + Space时JFXPanel,它只告诉我创建一个具有此名称的类.即使我写import javafx.embed.swing它只是建议我写import javafx.embed.swing.*这个包而不是任何类.

这种行为对我来说似乎很尴尬.任何人都可以告诉我,为什么eclipse无法完成这个或我能做些什么来防止这个问题发生?

java eclipse javafx

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

Cobertura导致ClassNotFoundException

当使用带有surefire和Cobertura的JUnit-Tests来构建我的项目时,通常,一切正常.但是当我最近添加了一个可以通过某些测试抛出(并且被排除)的异常时,maven总是告诉我:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project backend-server: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: There was an error in the forked process
[ERROR] java.lang.NoClassDefFoundError: de/unileipzig/irpsim/backend/simulation/TimerowTooShortException
[ERROR] at java.lang.Class.getDeclaredMethods0(Native Method)
[ERROR] at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
[ERROR] at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
[ERROR] at java.lang.Class.getMethod0(Class.java:3018)
[ERROR] at java.lang.Class.getMethod(Class.java:1784)
[ERROR] at org.apache.maven.surefire.util.ReflectionUtils.tryGetMethod(ReflectionUtils.java:57)
[ERROR] at org.apache.maven.surefire.common.junit3.JUnit3TestChecker.isSuiteOnly(JUnit3TestChecker.java:64)
[ERROR] at org.apache.maven.surefire.common.junit3.JUnit3TestChecker.isValidJUnit3Test(JUnit3TestChecker.java:59)
[ERROR] at org.apache.maven.surefire.common.junit3.JUnit3TestChecker.accept(JUnit3TestChecker.java:54)
[ERROR] at org.apache.maven.surefire.common.junit4.JUnit4TestChecker.accept(JUnit4TestChecker.java:52)
[ERROR] at org.apache.maven.surefire.util.DefaultScanResult.applyFilter(DefaultScanResult.java:97)
[ERROR] at org.apache.maven.surefire.junit4.JUnit4Provider.scanClassPath(JUnit4Provider.java:222)
[ERROR] at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:107)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
[ERROR] Caused by: …
Run Code Online (Sandbox Code Playgroud)

java maven maven-cobertura-plugin

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

使用 AspectJ 检测 Java 17

当我尝试使用 Java 17 运行 AspectJ 检测时,总是会收到如下错误:

java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initializeForJava11(ClassLoaderWeavingAdaptor.java:1069)
        at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.defineClass(ClassLoaderWeavingAdaptor.java:1096)
        at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.access$300(ClassLoaderWeavingAdaptor.java:66)
        at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor$SimpleGeneratedClassHandler.acceptClass(ClassLoaderWeavingAdaptor.java:150)
        at org.aspectj.weaver.tools.WeavingAdaptor$WeavingClassFileProvider$1.acceptResult(WeavingAdaptor.java:917)
        at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1431)
        at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1192)
        at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:549)
        at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:385)
        at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:115)
        at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:51)
        at java.instrument/java.lang.instrument.ClassFileTransformer.transform(ClassFileTransformer.java:244)
        at java.instrument/sun.instrument.TransformerManager.transform(TransformerManager.java:188)
        at java.instrument/sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:541)
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:467)
        at java.base/sun.launcher.LauncherHelper.loadMainClass(LauncherHelper.java:780)
        at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:675)
Caused by: java.lang.IllegalAccessException: module java.base does not open …
Run Code Online (Sandbox Code Playgroud)

aspectj java-17 jep-396

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

在Eclipse Mars for Java中显示注释是不可能的

我目前正在尝试在eclipse mars中获取Java文件的git注释,以查看何时更改了一行.在Luna,这有效(并且仍然有效)Team -> Show annotations.在火星上,这对我不起作用.(还有在重新安装后和另一台计算机上).对于其他文件,例如maven项目的pom.xml,这是有效的.除了这个问题之外,该项目在eclipse中工作和编译很好,并且是基于eclipse中的pom.xml创建的.此外,当通过创建项目时mvn eclipse:eclipse,显示注释不起作用.

我已经阅读了设置Ignore whitespace changesPreferences > General > Editors > Text Editors > Annotations > Errors > Show in > Vertical ruler(显示注释无效),这是正确的.关闭并重新打开Java透视图也不起作用(https://www.eclipse.org/forums/index.php/t/1011988/).我找不到任何其他关于此的线索.

是否有一些我缺少的Java配置,或者这是一个日食错误?

java eclipse

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

标签 统计

java ×6

eclipse ×3

maven ×3

aspectj ×1

git ×1

java-17 ×1

javafx ×1

jep-396 ×1

json ×1

maven-cobertura-plugin ×1

rest ×1

sigar ×1