我尝试添加jnativehook到我的项目,但是当我从控制台启动jar文件,它说:的Java找不到主类当我运行jar文件
Error: Could not find or load main class com.company.Main
我在IntelliJ IDEA的工作,简单地创建新的控制台应用程序并将jar添加到依赖项。我试图构建helloworld并从控制台运行它,它的工作原理非常完美,但是当我将程序更改为使用jnativehook时,java开始给我一个错误。顺便说一下,程序在IntelliJ IDEA控制台中完美运行,运行并一切正常。
我开始罐子用这个命令:
java -jar consolerunner.jar
我的.classpath看起来不错,反正,那就是:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="src" path="src"/>
<classpathentry exported="true" kind="var" path="USER_HOME/Desktop/jnativehook-2.0.3.jar"/>
<classpathentry kind="output" path="out/production/ConsoleRunner"/>
</classpath>
为主,而只有一个类的项目(大多数情况下,它是键盘记录的例子): package com.company;
import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;
import org.jnativehook.keyboard.NativeKeyEvent;
import org.jnativehook.keyboard.NativeKeyListener;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Main implements NativeKeyListener {
public void nativeKeyPressed(NativeKeyEvent e) {
System.out.println("Key Pressed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
if (e.getKeyCode() == NativeKeyEvent.VC_ESCAPE) {
try {
GlobalScreen.unregisterNativeHook();
} catch (NativeHookException e1) {
e1.printStackTrace();
}
}
}
public void nativeKeyReleased(NativeKeyEvent e) {
System.out.println("Key Released: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
}
public void nativeKeyTyped(NativeKeyEvent e) {
System.out.println("Key Typed: " + e.getKeyText(e.getKeyCode()));
}
public static void main(String[] args) {
try {
GlobalScreen.registerNativeHook();
}
catch (NativeHookException ex) {
System.err.println("There was a problem registering the native hook.");
System.err.println(ex.getMessage());
System.exit(1);
}
GlobalScreen.addNativeKeyListener(new com.company.Main());
Logger logger = Logger.getLogger(GlobalScreen.class.getPackage().getName());
logger.setLevel(Level.OFF);
}
}
我该如何构建jar(或者也许我jast错误启动它)在控制台中工作?
我试着在蚁中构建它,没有任何进展。 也许,我错误的导入jnahook jar,但是在这一点上我太迷了,我真的不知道该怎么做。 我读了很多stackoverflow的问题,找不到任何相似或有帮助的东西。
UPD: 这里是我的清单:
Manifest-Version: 1.0
Main-Class: com.company.Main
我知道,什么样的IntelliJ忽视的.classpath,但它可以使用的.classpath,如果在项目设置中设置它。 而且,是的,我建立了jar,但它不起作用。
一个的.classpath是什么,Eclipse使用,IDEA忽略该文件 –