Hi,

Should we really include the original CLASSPATH? We may get ourselves into 
trouble if it contains some incompatible or conflict dependencies with those in 
IoTDB. For example, if the user has put an old Log4j into CLASSPATH, the system 
log may fail.

Tian Jiang

发送自 Windows 10 版邮件应用

发件人: Lei Rui
发送时间: 2019年9月19日 13:42
收件人: [email protected]
主题: Re: Resolve "input line is too long" in windows os

Hi,


Ok then it looks like `start-server.bat` needs changing because now it is 


```
@REM ***** CLASSPATH library setting *****
@REM Ensure that any user defined CLASSPATH variables are not used on startup
set CLASSPATH="%IOTDB_HOME%\lib"
@REM For each jar in the IOTDB_HOME lib directory call append to build the 
CLASSPATH variable.
set CLASSPATH=%CLASSPATH%;"%IOTDB_HOME%\lib\*"
set CLASSPATH=%CLASSPATH%;iotdb.IoTDB
goto okClasspath
```


Lei Rui
On 9/19/2019 13:33,Xiangdong Huang<[email protected]> wrote:
Hi,

set CLASSPATH=%CLASSPATH%;%IOTDB_CLI_HOME%\lib\*

Normally, the better way is :

set CLASSPATH=%IOTDB_CLI_HOME%\lib\*;%CLASSPATH%

It means load %IOTDB_CLI_HOME%\lib\* first, and then %CLASSPATH% that the
system original having.

Best,
-----------------------------------
Xiangdong Huang
School of Software, Tsinghua University

黄向东
清华大学 软件学院


Jialin Qiao <[email protected]> 于2019年9月5日周四 上午9:21写道:


Ha....not iotdb-env.sh, it is in the start-client.bat, import-csv.bat and
export-csv.bat...

Best
--
Jialin Qiao
School of Software, Tsinghua University

乔嘉林
清华大学 软件学院

-----原始邮件-----
发件人: "Jialin Qiao" <[email protected]>
发送时间: 2019-09-05 09:17:45 (星期四)
收件人: [email protected]
抄送:
主题: Re:  Resolve "input line is too long" in windows os

Hi,

Ok, I found this in the current iotdb-env.sh:

```
@REM Ensure that any user defined CLASSPATH variables are not used on
startup
set CLASSPATH=""
```

Best,
--
Jialin Qiao
School of Software, Tsinghua University

乔嘉林
清华大学 软件学院

-----原始邮件-----
发件人: "Tian Jiang" <[email protected]>
发送时间: 2019-09-05 09:05:29 (星期四)
收件人: "[email protected]" <[email protected]>
抄送: "[email protected]" <[email protected]>
主题: Re:  Resolve "input line is too long" in windows os

Hi,


I think it is fine, since we are not sure what %CLASSPATH% would be
originally, if we depend on some unknown external dependencies, things may
get uncontrollable.


Tian Jiang


| |
Tian Jiang
|
|
[email protected]
|
签名由网易邮箱大师定制
On 9/5/2019 08:55,Jialin Qiao<[email protected]> wrote:
Hi Zesong,

Thanks for sharing your experience :)

I just have a question about this line:

set CLASSPATH=%IOTDB_CLI_HOME%\lib\*

Should it be the following command?

set CLASSPATH=%CLASSPATH%;%IOTDB_CLI_HOME%\lib\*

Best,
--
Jialin Qiao
School of Software, Tsinghua University

乔嘉林
清华大学 软件学院

-----原始邮件-----
发件人: "Zesong Sun" <[email protected]>
发送时间: 2019-09-04 22:20:54 (星期三)
收件人: dev <[email protected]>
抄送:
主题: Resolve "input line is too long" in windows os

Hi,




Recently I have encountered a problem when updating maven dependency
in tsfile module: when starting client in windows os, I will get an error:
"The input line is too long."


It is resulted by limitation of the maximum length of the string that
can be used at the command line: "On computers running Microsoft Windows XP
or later, the maximum length of the string that you can use at the command
prompt is 8191 characters. On computers running Microsoft Windows 2000 or
Windows NT 4.0, the maximum length of the string that you can use at the
command prompt is 2047 characters. This limitation applies to the command
line, individual environment variables (such as the PATH variable) that are
inherited by other processes, and all environment variable expansions. If
you use Command Prompt to run batch files, this limitation also applies to
batch file processing.” [1]


With the suggestion of @Jialin Qiao, I reduced the dependency (from
hadoop-client to hadoop-common), and local tests are all passed. However,
the tests on Travis CI still failed.


Thanks to @Tian Jiang, I changed the set CLASSPATH statement in .bat
file of starting client:


Previous:
```
for %%i in ("%IOTDB_CLI_HOME%\lib\*.jar") do call :append "%%i"
goto okClasspath


:append
set CLASSPATH=%CLASSPATH%;%1
goto :eof

```


And  now:
```
set CLASSPATH=%IOTDB_CLI_HOME%\lib\*
```


This avoid too long input line of CLASSPATH, which resolves the
problem.


The error confused me for really a long time... And I think maybe this
solution will help you in the future. If you have any other suggestions and
ideas, welcome to discuss with us : )




[1]
https://support.microsoft.com/en-us/help/830473/command-prompt-cmd-exe-command-line-string-limitation





BR,
------------------
Zesong Sun
School of Software, Tsinghua University

孙泽嵩
清华大学 软件学院


Reply via email to