如何以编程方式获取在 java -cp/-classpath选项值中使用的 Java 类路径分隔符?
当我将项目作为 Spring Boot 应用程序运行时,我收到此错误,我的猜测是解决方案可能不会太复杂:
错误日志:
2021-03-05 12:53:10.041 INFO 4704 --- [ main] .s.M13SimpleSpringHttpServiceApplication : No active profile set, falling back to default profiles: default
2021-03-05 12:53:10.936 INFO 4704 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2021-03-05 12:53:10.954 INFO 4704 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 7 ms. Found 0 JPA repository interfaces.
2021-03-05 12:53:11.520 WARN 4704 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh …Run Code Online (Sandbox Code Playgroud) 我正在尝试编译这个 slick2d示例(第一个),但我无法让它工作.这是代码:
import org.newdawn.slick.AppGameContainer;
import org.newdawn.slick.BasicGame;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.SlickException;
/**
* @author panos
*/
public class WizardGame extends BasicGame
{
public WizardGame()
{
super("Wizard game");
}
public static void main(String[] arguments)
{
try
{
AppGameContainer app = new AppGameContainer(new WizardGame());
app.setDisplayMode(500, 400, false);
app.start();
}
catch (SlickException e)
{
e.printStackTrace();
}
}
@Override
public void init(GameContainer container) throws SlickException
{
}
@Override
public void update(GameContainer container, int delta) throws SlickException
{
}
public void render(GameContainer container, …Run Code Online (Sandbox Code Playgroud) 我无法编译Java程序,因为即使它们同时位于构建类路径和运行时类路径中,也找不到某些导入的包.
下图显示了问题.我在eclipse中突出显示了gdata-media软件包.它对应于第一个编译错误.
截图http://img3.imageshack.us/img3/5199/classesnotavailable.png 点击查看完整尺寸
我究竟做错了什么?
我正在编译helloworldapp而没有错误.
我正在Windows上运行java helloworldapp
CLASSPATH:.; C:\ Program Files\Java\jre7\lib;
JAVA_HOME:C:\ Program Files\Java\jre7
路径包括C:\ Program Files\Java\jdk1.7.0\bin \
结果:
C:\Users\k\Desktop\abcl-bin-0.26.2>java helloworldapp
Exception in thread "main" java.lang.NoClassDefFoundError: helloworldapp (wrong
name: HelloWorldApp)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
............etc
Run Code Online (Sandbox Code Playgroud)
好吧,对于一些共鸣,它找不到类,所以我试图手动完成.
C:\Users\k\Desktop\abcl-bin-0.26.2>java -cp "C:\Program Files\Java\jre7\lib" helloworldapp
Error: Could not find or load main class helloworldapp
C:\Users\k\Desktop\abcl-bin-0.26.2>java -cp C:\Program Files\Java\jre7\lib; helloworldapp
Error: Could not find or load main class Files\Java\jre7\lib;
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我看过几个论坛,但他们并没有特别的帮助.
更新,我超越了helloworld阶段.现在真正的问题
import org.armedbear.lisp.*;
public class Main
{
public static void main(String[] argv)
{
try …Run Code Online (Sandbox Code Playgroud) 这是我第三次安装它.我让它在Windows上工作,直到几天前在Linux上工作.我已经完成了所有我能做的事情,我不明白如何运行这个Java程序.
源代码是一个带有lib的文件夹,src是一些jars以及一个类路径和项目文件.类路径文件生成一些声明,如classpathentry = src/main和path = lib,path = src.
所有这些都是有道理的.'src'里面有一个'main'文件夹.
我试图运行的小文件开始于
import de.l3s.boilerpipe.demo
我正在尝试运行'Oneliner.java'.我无法编译它.
无论该类文件是什么/哪里,我都无法运行它.它导致了一个noclassdeffound.我在main,src,root,demo,...中运行它.我已经尝试在不同的目录中编译它,使用推荐的各种java命令行开关运行它.据说你可以让它"搜索"我尚未体验过的文件.这个java环境的纯粹顽固是可怕的.并为我大辱骂.
我有一个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
谢谢,
詹姆士.
我有一个名为GameClient.jar的jar,它有一个main方法.我有一个json.jar,它包含一个org/json/JSONException.class
这两个都在dist文件夹中.
我运行以下内容
java -classpath dist/json.jar -jar dist/gameclient.jar
不确定为什么我还能得到
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.json.JSONException
Run Code Online (Sandbox Code Playgroud)
我在Windows XP和Java 1.7上.无论有没有classpath选项,我都会得到相同的错误.
我正在尝试将LibSVM与Weka API一起使用.
我的系统:Win7 Weka 3.7.12 LibSVM 1.0.6(通过软件包管理器安装)
我的代码:
import java.io.File;
import java.util.Random;
import javax.swing.JOptionPane;
import weka.classifiers.Evaluation;
import weka.classifiers.functions.LibSVM;
import weka.core.Instances;
import weka.core.converters.ConverterUtils.DataSource;
public class LibSVMClassifier {
// Method to build a SVM classifier with a given data file
public static double buildModel(File dataSet){
// new instance of LibSVM
LibSVM clsSVM = new LibSVM();
try {
Instances data = DataSource.read(dataSet.getAbsolutePath());
// Sets the label feature
data.setClassIndex(data.numAttributes()-1);
String opts = "-S 0 -K 0 -D 3 -G 0.0 -R 0.0 -N 0.5 …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建位于此处的Java项目:https : //github.com/garlicPasta/dotServer
我是Gradle的新手。我现在下载了最新的Gradle(v4.0)。我在路径中添加了binGradle文件夹(包括gradle.bat),以便可以在任何地方运行gradle命令。该项目似乎需要Google protobuf,并会自动下载。但是,当我启动命令时gradle build,出现以下错误:
> Configure project :
You are using Gradle 4.0: This version of the protobuf plugin works with Gradle version 2.12+
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'dotServer'.
> No signature of method: org.gradle.api.internal.tasks.DefaultTaskInputs.source() is applicable for argument types: (com.google.protobuf.gradle.ProtobufSourceDirectorySet_Decorated) values: [main Proto source]
Possible solutions: collect(), use([Ljava.lang.Object;)
Run Code Online (Sandbox Code Playgroud)
问题出在哪里?有人可以尝试构建项目并让我知道吗?