build.xml:278: Unable to find a javac compiler;

本文介绍了解决使用Ant编译Openfire时遇到的javac编译器未找到的问题。详细步骤包括下载并安装JDK,配置环境变量JAVA_HOME、CLASSPATH及Path,以及在Eclipse中添加JDK的tools.jar文件。

使用Ant编译openfire出现问题:

build.xml:278: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "C:\Program Files\Java\jre7"
解决:

一.下载jdk,地址http://wh.uzzf.com//jxl/jdk-windows-32_setup.zip

二.配置jdk环境

1.右键选择 计算机→属性→高级系统设置→高级→环境变量

2.系统变量→新建

变量名:JAVA_HOME

变量值:(变量值填写你的jdk的安装目录,例如本人是 E:\Program Files\Java\jdk1.7.0_45)

3.在系统变量中找到 Path 变量,选择编辑

在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

(注意如果原来Path的变量值末尾没有;号,就先输入;号再输入上面的代码)

4.系统变量→新建

变量名:CLASSPATH

变量值:.%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)

到这系统变量就配置完毕了。

5.检验jdk是否配置成功:运行cmd 输入 java -version (java 和 -version 之间有空格)

三.在eclipse中配置

windows->preferences->ant-> Runtime->Classpath->Ant Home Entries->Add External JARs,添加了jdk下面的/lib/tools.jar后,编译通过
参考:http://www.uzzf.com/soft/395.html

http://hi.baidu.com/queryworld/item/40b1ddedce7da4fd2b09a440

Unable to start the daemon process. This problem might be caused by incorrect configuration of the daemon. For example, an unrecognized jvm option is used.For more details on the daemon, please refer to https://docs.gradle.org/8.13/userguide/gradle_daemon.html in the Gradle documentation. Process command line: D:\Andriod\jbr\bin\java.exe --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.xml/javax.xml.namespace=ALL-UNNAMED -Xmx512m -Dfile.encoding=UTF-8 -Duser.country=CN -Duser.language=zh -Duser.variant -cp C:\Users\Administrator\.gradle\wrapper\dists\gradle-8.13-bin\5xuhj0ry160q40clulazy9h7d\gradle-8.13\lib\gradle-daemon-main-8.13.jar -javaagent:C:\Users\Administrator\.gradle\wrapper\dists\gradle-8.13-bin\5xuhj0ry160q40clulazy9h7d\gradle-8.13\lib\agents\gradle-instrumentation-agent-8.13.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 8.13 Please read the following process output to find out more: ----------------------- FAILURE: Build failed with an exception. * What went wrong: Could not initialize native services. * Try: > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. * Exception is: org.gradle.internal.service.ServiceCreationException: Could not initialize native services. at org.gradle.internal.nativeintegration.services.NativeServices.initialize(NativeServices.java:262) at org.gradle.internal.nativeintegration.services.NativeServices.initializeOnDaemon(NativeServices.java:222) at org.gradle.launcher.daemon.bootstrap.DaemonMain.doAction(DaemonMain.java:113) at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:52) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:72) at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:39) at org.gradle.launcher.daemon.bootstrap.GradleDaemon.main(GradleDaemon.java:22) Caused by: net.rubygrapefruit.platform.NativeException: Failed to initialise native integration. at org.gradle.fileevents.FileEvents.init(FileEvents.java:71) at org.gradle.internal.nativeintegration.services.NativeServices$NativeFeatures$1.initialize(NativeServices.java:118) at org.gradle.internal.nativeintegration.services.NativeServices.<init>(NativeServices.java:315) at org.gradle.internal.nativeintegration.services.NativeServices.initialize(NativeServices.java:260) ... 8 more Caused by: java.lang.UnsatisfiedLinkError: C:\Users\Administrator\.gradle\native\0.2.7\x86_64-windows-gnu\gradle-fileevents.dll: ??????? at java.base/jdk.internal.loader.NativeLibraries.load(Native Method) at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(Unknown Source) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(Unknown Source) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(Unknown Source) at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source) at java.base/java.lang.Runtime.load0(Unknown Source) at java.base/java.lang.System.load(Unknown Source) at org.gradle.fileevents.FileEvents.init(FileEvents.java:55) ... 11 more ----------------------- Check the JVM arguments defined for the gradle process in: - gradle.properties in project root directory
08-03
[root@yfw ~]# cd /opt/openfire [root@yfw openfire]# javap -verbose /opt/openfire/plugins/restapi/classes/com/example/restapi/RestApiPlugin.class | grep "major version" major version: 55 [root@yfw openfire]# cd /opt/openfire/plugins/restapi [root@yfw restapi]# rm -rf classes/* [root@yfw restapi]# cp -r /root/openfire-plugins/restapi-plugin/target/classes/* classes/ [root@yfw restapi]# cd /opt/openfire/plugins/restapi/classes [root@yfw classes]# [root@yfw classes]# # 使用 openfire 用户身份 + 完整类路径尝试加载类 [root@yfw classes]# sudo -u openfire java -cp ".:/opt/openfire/lib/*" com.example.restapi.RestApiPlugin Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: com/example/restapi/RestApiPlugin has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:473) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601) [root@yfw classes]# # 编译时指定类路径 [root@yfw classes]# javac -d target/classes \ > -cp "/opt/openfire/lib/*" \ > src/main/java/com/example/restapi/RestApiPlugin.java javac: file not found: src/main/java/com/example/restapi/RestApiPlugin.java Usage: javac <options> <source files> use -help for a list of possible options [root@yfw classes]# package com.example.restapi; -bash: package: command not found [root@yfw classes]# [root@yfw classes]# import org.jivesoftware.openfire.plugin.Plugin; import: unable to open X server `' @ error/import.c/ImportImageCommand/347. [root@yfw classes]# import org.jivesoftware.openfire.plugin.PluginManager; import: unable to open X server `' @ error/import.c/ImportImageCommand/347. [root@yfw classes]# import java.io.File; import: unable to open X server `' @ error/import.c/ImportImageCommand/347. [root@yfw classes]# [root@yfw classes]# public class RestApiPlugin implements Plugin { -bash: public: command not found [root@yfw classes]# [root@yfw classes]# public RestApiPlugin() { -bash: syntax error near unexpected token `(' [root@yfw classes]# System.out.println("📞 RestApiPlugin 构造函数调用"); -bash: syntax error near unexpected token `"📞 RestApiPlugin 构造函数调用"' [root@yfw classes]# } -bash: syntax error near unexpected token `}' [root@yfw classes]# [root@yfw classes]# @Override -bash: @Override: command not found [root@yfw classes]# public void initializePlugin(PluginManager manager, File pluginDirectory) { -bash: syntax error near unexpected token `(' [root@yfw classes]# System.out.println("✅ 插件已初始化: " + pluginDirectory); -bash: syntax error near unexpected token `"✅ 插件已初始化: "' [root@yfw classes]# } -bash: syntax error near unexpected token `}' [root@yfw classes]# [root@yfw classes]# @Override -bash: @Override: command not found [root@yfw classes]# public void destroyPlugin() { -bash: syntax error near unexpected token `(' [root@yfw classes]# System.out.println("🛑 插件已卸载"); -bash: syntax error near unexpected token `"🛑 插件已卸载"' [root@yfw classes]# } -bash: syntax error near unexpected token `}' [root@yfw classes]# } -bash: syntax error near unexpected token `}' [root@yfw classes]#
最新发布
10-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值