通过 Cygwin 在 Windows 上使用启动参数启动 Solr 7.2.1

Starting Solr 7.2.1 with startup parameters on Windows via Cygwin

我正在将 Solr 4.3.1 升级到 Solr 7.2.1

我以前是这样启动 Solr 4.3.1 的:

C:
chdir C:\cygwin\bin

bash -c "cd /cygdrive/c/Databases/solr-4.3.1/example/;java -Dsolr.solr.home="./example-DIH/solr/" -jar -Xms200m -Xmx1600m start.jar -OPTIONS=jsp" 

但是,当我尝试这样做时:

C:
chdir C:\cygwin\bin

bash -c "cd /cygdrive/c/Databases/solr-7.2.1/example/;java -Dsolr.solr.home="./example-DIH/solr/" -jar -Xms200m -Xmx1600m start.jar -OPTIONS=jsp" 

Error: Unable to access jarfile start.jar

然后我将 start.jar 从 C:\Databases\solr-4.3.1\example 复制到 C:\Databases\solr-7.2.1\example

并重新运行 .bat 文件,但随后我得到

java.io.FileNotFoundException: No XML configuration files specified in start.config or command line. at org.eclipse.jetty.start.Main.start(Main.java:506) at org.eclipse.jetty.start.Main.main(Main.java:95)

Usage: java -jar start.jar [options] [properties] [configs] java -jar start.jar --help # for more information

但是,在我的旧 Solr 环境中,我也没有看到 start.config,我正在通过命令行传递相同的参数。

不用Cygwin我也能成功启动Solr:

C:\Databases\solr-7.2.1\bin>solr.cmd start -p 8984
Waiting up to 30 to see Solr running on port 8984
Started Solr server on port 8984. Happy searching!

更新 1

@Holger 下面指出有一个 server 文件夹。我有那个文件夹,里面已经有一个 start.jar 文件。

所以我尝试了:
bash -c "cd /cygdrive/C/Databases/solr-7.2.1/server/;java -Dsolr.solr.home="solr/" -jar -Xms200m -Xmx1600m start.jar -OPTIONS=jsp"

但后来我得到:

WARNING: System properties and/or JVM args set. Consider using --dry-run or --exec WARNING: Nothing to start, exiting ...

如何通过带有附加参数(如内存分配)的 Cygwin 启动 Solr 7.2.1(在 Windows 上)

我从 4.x 更新到 7.x 时遇到了类似的问题,但是在 OS X 上。

有目录../solr-7.2.1/server吗?然后尝试使用 start.jar 而不是

../solr-7.2.1/example 

但在

../solr-7.2.1/server. 

工作目录必须是包含 start.jar 的目录。所以在

 ../solr-7.2.1/server 

启动 solr 时。您可能必须设置

--module=http -Dsolr.log.dir=...

也是。这对我有用。

请注意版本 5.2.0 的发行说明 [2015-06-07]

"It is no longer possible to run "java -jar start.jar" 来自服务器目录。bin/solr 脚本是 运行 Solr 唯一受支持的方式。这是支持 Jetty 中的 HTTP 和 HTTPS 模块所必需的,可以通过 bin/solr 脚本有选择地启用。如果您迫切需要 运行 解决旧方法,您可以 运行 "java -jar start.jar --module=http" 以获得与以前相同的行为。"